Download OpenAPI specification:Download
Welcome to the Spot by NetApp OpenAPI Specification. Here you will find REST definitions for all Spot products and platform administration tasks.
The API is hosted at https://api.spotinst.io and requires Bearer Token
Authentication.
For more information on how to use the Spot platform, including user guides, developer guides, concepts, and tutorials, see the external Spot Documentation.
To generate bearer tokens and understand more about Spot by NetApp authentication see the howto for token creation on the Spot Help site.
Each Spot account is assigned to an organization and a set of environment Accounts. An account is then linked to a specific cloud provider account.
Spot accounts are given an ID in the format act-123abcd that is sent as a query parameter while performing API calls.
To locate the account ID navigate to Settings -> Account in the Spot console.
Each API call you make can be used with or without the account ID.
Each API call you make should be appended to the account ID. For example:
GET https://api.spotinst.io/aws/ec2/group?accountId=act-123de678
This call will return the list of Elastigroups for the specific Account used.
NOTE: If no
accountIdis provided, the default (dldest) account for the Organization will be used.
| Security Scheme Type | HTTP |
|---|---|
| HTTP Authorization Scheme | bearer |
Get all users in the organization, their details, and mapped accounts. Providing the optional account ID parameter will filter out all users not mapped to that account.
| accountId | any Example: accountId=act-123abc ID of the account you would like to get retrieve users from |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/user?accountId=act-123456789",
- "method": "GET",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group:log",
- "items": [
- {
- "mappedAccountIds": [
- "act-0b18f123",
- "act-0b18f124",
- "act-0b18f125"
], - "userId": "u-19265",
- "displayName": "test",
- "email": "test@spot.io"
}, - {
- "mappedAccountIds": [
- "act-0b18f123",
- "act-0b18f124",
- "act-0b18f125"
], - "userId": "u-19266",
- "displayName": "test",
- "email": "abc@google.com"
}
], - "count": 2
}
}Create a new user and link it to the creator's organization (the organization ID from the personal token attached to the API call). If the role is a viewer, the user is also linked to the default account for the organization.
| generateToken | any Example: generateToken=true If |
string | |
| firstName | string The first name of the user |
| lastName | string The last name of the user |
| password | string Password |
| role | string User's role |
{- "firstName": "Test",
- "lastName": "Test",
- "email": "test@spot.io",
- "password": "password1234",
- "role": "viewer"
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/user/?generateToken=true",
- "method": "POST",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:setup:user",
- "items": [
- {
- "id": 9056,
- "firstName": "Test",
- "lastName": "Test",
- "displayName": "Test Test",
- "email": "test@gmail.com",
- "organizationId": 606079860000,
- "personalAccessToken": "..."
}
], - "count": 2
}
}Get user's account mapping
| userEmail required | any Example: userEmail=test@spot.io Target user email address |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/accountUserMapping?userEmail=test@spot.io",
- "method": "GET",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group:log",
- "items": [
- {
- "accountId": "act-1234592",
- "role": "editor"
}, - {
- "accountId": "act-1234593",
- "role": "viewer"
}
], - "count": 2
}
}Delete a Spot Organization. ID of the organization can be obtained from your Spot console via the following link: https://console.spotinst.com/#/settings/organization/general > Note: This cannot be undone. Take caution.
| organizationId required | any Example: 606079812345 ID of the organization you would like to delete |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/organization/606079812345",
- "method": "DELETE",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}This API creates a new programmatic user (not a human user). Use this API to provide privileges to an application that needs to interface with Spot. Spot returns a token that the programmatic user can use to perform actions with.
required | Array of objects All the accounts the programmatic user will have access to. Cannot be empty. |
| description | string Brief description of the user. |
| name required | string Name of the programmatic user. |
{- "description": "test programmatic",
- "name": "testProgrammaticApi",
- "accounts": [
- {
- "id": "act-123",
- "role": "viewer"
}
]
}{- "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:setup:programmaticUser",
- "items": [
- {
- "token": "f872e7b157866a36229d915aa21cf430f661234568703fd",
- "name": "TestApi1",
- "id": "pu-6a6976ab"
}
], - "count": 1
}
}Get all the Programmatic Users in the organization.
{- "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:setup:programmaticUser",
- "items": [
- {
- "id": "pu_968465",
- "userName": "pu_name",
- "description": "test programmatic",
- "accounts": [
- {
- "id": "act-123",
- "role": "editor"
}, - {
- "id": "act-1234",
- "role": "viewer"
}
]
}, - {
- "id": "pu_123456",
- "userName": "pu_name2",
- "description": "my programmatic user",
- "accounts": [
- {
- "id": "act-1234",
- "role": "viewer"
}, - {
- "id": "act-123",
- "role": "editor"
}
]
}
], - "count": 2
}
}Updates the Programmatic User.
| userId required | string Example: pu_968465 ID of the user |
Array of objects All the accounts the programmatic user will have access to. Cannot be empty. | |
| description | string Brief description of the user. |
{- "description": "test programmatic",
- "accounts": [
- {
- "id": "act-123",
- "role": "viewer"
}
]
}{- "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:setup:programmaticUser",
- "items": [
- {
- "id": "pu_968465",
- "userName": "pu_name",
- "description": "test programmatic",
- "accounts": [
- {
- "id": "act-123",
- "role": "editor"
}, - {
- "id": "act-1234",
- "role": "viewer"
}
]
}
], - "count": 1
}
}Gets the Programmatic User.
| userId required | string Example: pu_968465 ID of the user |
{- "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:setup:programmaticUser",
- "items": [
- {
- "id": "pu_968465",
- "userName": "pu_name",
- "description": "test programmatic",
- "accounts": [
- {
- "id": "act-123",
- "role": "editor"
}, - {
- "id": "act-1234",
- "role": "viewer"
}
]
}
], - "count": 1
}
}Create a Spot Organization.
object Organization |
{- "organization": {
- "name": "organizationName"
}
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/organization",
- "method": "POST",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:setup:organization",
- "items": [
- {
- "organizationId": 12345678,
- "organizationName": "organizationName"
}
], - "count": 1
}
}Update information in an account such as the account name and slack channel. To use this command, permissions for organization admin are required. Granular permissions will require access policies with the following actions: setup:updateAccount
| accountId required | string Example: act-123abc ID of the account you would like to update |
required | object Used for updating items in an account. |
{- "account": {
- "slackNotificationChannels": [
], - "name": "ACCOUNT_NAME"
}
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/account/act-4fb595c6?accountId=act-4fb595c6",
- "method": "PUT",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Delete a Spot Account. The Spot Account ID can be obtained from your Spot console via the following link: https://console.spotinst.com/#/settings/account/general . Note This cannot be undone – take caution. Only Organization Admins can perform this action. In case you want to delete your default Spot account which is the account visible when you first log in please contact Support.
| accountId required | any Example: act-123456 ID of the account you would like to delete |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/account/act-123456",
- "method": "DELETE",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Get all users in the organization, their details, and mapped accounts. Providing the optional account ID parameter will filter out all users not mapped to that account.
| accountId | any Example: accountId=act-123abc ID of the account you would like to get retrieve users from |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/user?accountId=act-123456789",
- "method": "GET",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group:log",
- "items": [
- {
- "mappedAccountIds": [
- "act-0b18f123",
- "act-0b18f124",
- "act-0b18f125"
], - "userId": "u-19265",
- "displayName": "test",
- "email": "test@spot.io"
}, - {
- "mappedAccountIds": [
- "act-0b18f123",
- "act-0b18f124",
- "act-0b18f125"
], - "userId": "u-19266",
- "displayName": "test",
- "email": "abc@google.com"
}
], - "count": 2
}
}Assign users to accounts in bulk. Only accounts under the creator's own organization are allowed. Creator's organization ID is taken from the personal token attached to the API call.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| mappings | Array of any Mappings objects include user, accountID and role. |
{- "mappings": [
- {
- "userId": "u-1234",
- "accountId": "act-123abc",
- "role": "editor"
}, - {
- "userId": "u-1234",
- "accountId": "act-123abc",
- "permissionStrategy": "ROLE_BASED",
- "role": "editor"
}
]
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/accountUserMapping?accountId=act-4fab9sc6",
- "method": "POST",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Change the users' permissions for an account (only accounts under the creator's own organization are allowed). Creator's organization ID is taken from the personal token attached to the API call.
| accountId | string Example: act-123abc ID of the account associated with your token |
| permissionStrategy | string Default: "ROLE_BASED" Set the user permissions type, by role or by access policy. Valid values "ROLE_BASED", "POLICY_BASED" |
| role | string Valid values "viewer", "editor". Required on permissionStrategy = ROLE_BASED |
| userId | string One of userEmail / userId is required. identify user by its user ID |
{- "userId": "u-1234",
- "permissionStrategy": "POLICY_BASED",
- "role": "editor"
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/account/act-4fb595c6/user/",
- "method": "PUT",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Detach a user from an account (only accounts under the creator's own organization are allowed). Creator's organization ID is taken from the personal token attached to the API call.
| accountId required | any Example: act-123abc Account ID |
| userEmail required | string Email of the user that is going to be deleted |
{- "userEmail": "test@gmail.com"
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/account/act-12345678/user/",
- "method": "DELETE",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Add a user to the account and set its permissions on the account. Creator's organization ID is taken from the personal token attached to the API call.
| accountId required | any Example: act-123abc Account ID |
| role | string Valid values - "viewer", "editor". Required on permissionStrategy = ROLE_BASED |
| userEmail | string One of userEmail / userId is required. identify user by its user ID |
{- "userEmail": "test@spot.io",
- "role": "viewer"
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/account/act-4fb765c6/user",
- "method": "PUT",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Create a Spot account.
object Account |
{- "account": {
- "name": "AccountName"
}
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/account",
- "method": "POST",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:setup:account",
- "items": [
- {
- "id": "act-123456",
- "name": "AccountName",
- "organizationId": 606012341234
}
], - "count": 1
}
}Get a list of Spot accounts in your organization. When used without any parameters, the provided token must have Organization Admin permissions and the output will contain all the Organization's accounts. Note In case you want to list all the accounts associated with Organization you can use the below request URL without the cloudAccountId parameter, https://api.spotinst.io/setup/account
| cloudAccountId | string Example: cloudAccountId=634245686616 Will list only the Spot accounts connected to the specified account ID. |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/account?cloudAccountId=123456789",
- "method": "GET",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:setup:account",
- "items": [
- {
- "accountId": "act-57765123",
- "organizationId": 606079861123,
- "name": "test",
- "providerExternalId": 123456789
}, - {
- "accountId": "act-57765123",
- "organizationId": 606079861123,
- "name": "prod",
- "providerExternalId": 123456789
}
], - "count": 2
}
}Create an access policy. access policy enables you to define the user's permissions on a granular level than the role-based permissions.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object Set access policy settings. Example - Acme, Inc. |
{- "policy": {
- "name": "my policy",
- "description": "description of my policy",
- "policyContent": {
- "statements": [
- {
- "effect": "ALLOW",
- "actions": [
- [
- "ocean:importCluster"
]
], - "resources": [
- [
- "*"
]
]
}, - {
- "effect": "ALLOW",
- "actions": [
- [
- "emr:scale"
]
], - "resources": [
- [
- "*"
]
]
}
]
}
}
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/access/policy?accountId=act-6sd665cs\"",
- "method": "POST",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:setup:access:policy",
- "items": [
- {
- "name": "my policy",
- "description": "description of my policy",
- "policyContent": [ ],
- "id": "pol-de9716be"
}
], - "count": 1
}
}Get access policy settings.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/access/policy?accountId=act-4fd325c3",
- "method": "GET",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:setup:access:policy",
- "items": [
- {
- "name": "my policy",
- "description": "description of my policy",
- "policyContent": {
- "statements": [
- {
- "effect": "ALLOW",
- "actions": [
- [
- "ocean:importCluster"
]
], - "resources": [
- [
- "*"
]
]
}, - {
- "effect": "ALLOW",
- "actions": [
- [
- "emr:scale"
]
], - "resources": [
- [
- "*"
]
]
}
]
}, - "id": "pol-de9716be",
- "createdAt": "2020-01-21T12:37:14.000+0000",
- "updatedAt": "2020-01-21T12:37:14.000+0000"
}
], - "count": 1
}
}Get the permissions for all the users in the account.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/user/permission",
- "method": "GET",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:setup:user:permission",
- "items": [
- {
- "userId": "u-1235",
- "permissionStrategy": "ROLE_BASED",
- "role": "editor",
- "policyIds": [
- "string"
]
}, - {
- "userId": "u-12387",
- "permissionStrategy": "POLICY_BASED",
- "role": "viewer",
- "policyIds": [
- "string"
]
}, - {
- "userId": "u-1234",
- "permissionStrategy": "POLICY_BASED",
- "role": "viewer",
- "policyIds": [
- "string"
]
}
], - "count": 3
}
}Updates an access policy settings.
| policyId required | any Example: pol-2344nn The access policy ID to delete |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object Set access policy settings |
{- "policy": {
- "name": "A wonderful policy"
}
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/access/policy/pol-2344nn?accountId=act-4fbdvfc6",
- "method": "PUT",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Deletes an access policy settings.
| policyId required | any Example: pol-2344nn The access policy ID to delete |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/access/policy/pol-2344nn?accountId=act-123456789",
- "method": "DELETE",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Link a Spot account to an AWS Cloud account.
Please create external id using spot api (see /setup/credentials/aws/externalId)
and use it when creating the AWS role and then call this route with your AWS role's arn to link it to your spot account
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object Credentials details |
{- "credentials": {
- "iamRole": "arn:aws:iam::1234567890:role/Spot_Iam_Role"
}
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/credentials/aws?accountId=act-123456",
- "method": "POST",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Create aws account external id
You should use the external id when creating your AWS role for your spot account
and after you create the role you need to call set-aws-credentials Set Credentials for AWS
to link your AWS account with your spot account
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/setup/credentials/aws/externalId?accountId=act-123456",
- "method": "POST",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:setup:aws:externalId",
- "items": [
- {
- "externalId": "SpotinstAwsAccountExternalId",
- "maxValidUntil": "2021-03-18T16:11:04.402Z"
}
], - "count": 1
}
}Link a Spot account to a GCP Cloud account.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object Set service account for credentials |
{- "serviceAccount": {
- "type": "service_account",
- "project_id": "test-labs",
- "private_key_id": "XXXXXXXXXXXXXXXXX",
- "private_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
- "client_email": "test123@spot.io",
- "client_id": "XXXXXXXXXXXXXXXXXXXXX",
- "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/test123%40test-labs.iam.gserviceaccount.com"
}
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/gcp/setup/credentials?accountId=act-123456",
- "method": "POST",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Validate the credentials for connecting a Spot account to an GCP Cloud account. The validation will test the credentials without actually set it. Please notice to run the set credentials request to perform the set account credentials.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object Set service account for credentials |
{- "serviceAccount": {
- "type": "service_account",
- "project_id": "test-labs",
- "private_key_id": "XXXXXXXXXXXXXXXXX",
- "private_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
- "client_email": "test123@spot.io",
- "client_id": "XXXXXXXXXXXXXXXXXXXXX",
- "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/test123%40test-labs.iam.gserviceaccount.com"
}
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/gcp/setup/credentials/validate?accountId=act-123456",
- "method": "POST",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Link a Spot account to an Azure Cloud account.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| clientId | string Set the application ID |
| clientSecret | string Set the key secret |
| subscriptionId | string Set the subscription ID |
| tenantId | string Set the directory ID |
{- "clientId": 111111111,
- "clientSecret": "32431r2431434132",
- "tenantId": "1321e1e3123er23",
- "subscriptionId": "234r3141131"
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/azure/setup/credentials?accountId=act-123456",
- "method": "POST",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Validate the credentials for connecting a Spot account to an Azure Cloud account. The validation will test the credentials without actually set it. Please notice to run the set credentials request to perform the set Azure account credentials (https://docs.spot.io/connect-your-cloud-provider/azure-account) .
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| clientId | string Set the application ID |
| clientSecret | string Set the key secret |
| subscriptionId | string Set the subscription ID |
| tenantId | string Set the directory ID |
{- "clientId": "111111111",
- "clientSecret": "32431r2431434132",
- "tenantId": "1321e1e3123er23",
- "subscriptionId": "234r3141131"
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/azure/setup/credentials/validation?accountId=act-123456",
- "method": "POST",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Prerequisites
The Ocean Controller is used to monitor the cluster resources and report back to Ocean. The Ocean Controller is required for Ocean Cloud and On-Prem.
To install the Ocean Controller, complete and run the following script on a machine with the kubectl command line tool installed and configured:
#!/usr/bin/env bash
curl -fsSL http://spotinst-public.s3.amazonaws.com/integrations/kubernetes/cluster-controller/scripts/init.sh | \
SPOTINST_TOKEN=<ENTER YOUR TOKEN HERE> \
SPOTINST_ACCOUNT=<ENTER YOUR SPOTINST ACCOUNT ID HERE> \
SPOTINST_CLUSTER_IDENTIFIER=<ENTER YOUR CLUSTER IDENTIFIER HERE> \
bash| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object The object specifying the configuration of the Ocean cluster. |
{- "cluster": {
- "name": "oceanName",
- "controllerClusterId": "ocean.k8s",
- "region": "us-east-1",
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 180,
- "resourceLimits": {
- "maxMemoryGib": 1500,
- "maxVCpu": 750
}, - "down": {
- "maxScaleDownPercentage": 60
}, - "headroom": {
- "cpuPerUnit": 2000,
- "memoryPerUnit": 0,
- "gpuPerUnit": 0,
- "numOfUnits": 4
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": null,
- "enableAutomaticAndManualHeadroom": true
}, - "capacity": {
- "minimum": 0,
- "maximum": 1000,
- "target": 1
}, - "strategy": {
- "utilizeReservedInstances": true,
- "fallbackToOd": true,
- "gracePeriod": 600,
- "drainingTimeout": 60
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "cronExpression": "0 1 * * *",
- "taskType": "clusterRoll"
}
], - "shutdownHours": {
- "timeWindows": [
- "Sat:08:00-Sun:08:00"
], - "isEnabled": true
}
}, - "security": {
- "containerImage": {
- "approvedImages": [
- [
- "*.ecr.*.amazonaws.com/*",
- "docker.*"
]
]
}
}, - "compute": {
- "subnetIds": [
- [
- "subnet-4c1d1538",
- "subnet-2791bb61"
]
], - "instanceTypes": {
- "whitelist": [
- [
- "c4.2xlarge",
- "c4.xlarge",
- "c4.4xlarge",
- "c4.8xlarge"
]
], - "blacklist": [
- "string"
]
}, - "launchSpecification": {
- "useAsTemplateOnly": false,
- "imageId": "string",
- "userData": "string",
- "securityGroupIds": [
- [
- "sg-c3d914b0"
]
], - "iamInstanceProfile": {
- "arn": "orform"
}, - "keyPair": "spotinst-labs-oregon",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "loadBalancers": [
- {
- "type": "TARGET_GROUP",
- "name": "MyTargetGroup",
- "arn": "arn:aws:elasticloadbalancing:us-west-2:922761411234:targetgroup"
}
], - "associatePublicIpAddress": false,
- "monitoring": true,
- "ebsOptimized": true,
- "rootVolumeSize": 73,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
}, - "logging": {
- "export": {
- "s3": {
- "id": "di-123"
}
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "cluster": {
- "name": "oceanName",
- "controllerClusterId": "ocean.k8s",
- "region": "us-east-1",
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 180,
- "resourceLimits": {
- "maxMemoryGib": 1500,
- "maxVCpu": 750
}, - "down": {
- "maxScaleDownPercentage": 60
}, - "headroom": {
- "cpuPerUnit": 2000,
- "memoryPerUnit": 0,
- "gpuPerUnit": 0,
- "numOfUnits": 4
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": null,
- "enableAutomaticAndManualHeadroom": true
}, - "capacity": {
- "minimum": 0,
- "maximum": 1000,
- "target": 1
}, - "strategy": {
- "utilizeReservedInstances": true,
- "fallbackToOd": true,
- "gracePeriod": 600,
- "drainingTimeout": 60
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "cronExpression": "0 1 * * *",
- "taskType": "clusterRoll"
}
], - "shutdownHours": {
- "timeWindows": [
- "Sat:08:00-Sun:08:00"
], - "isEnabled": true
}
}, - "security": {
- "containerImage": {
- "approvedImages": [
- [
- "*.ecr.*.amazonaws.com/*",
- "docker.*"
]
]
}
}, - "compute": {
- "subnetIds": [
- [
- "subnet-4c1d1538",
- "subnet-2791bb61"
]
], - "instanceTypes": {
- "whitelist": [
- [
- "c4.2xlarge",
- "c4.xlarge",
- "c4.4xlarge",
- "c4.8xlarge"
]
], - "blacklist": [
- "string"
]
}, - "launchSpecification": {
- "useAsTemplateOnly": false,
- "imageId": "string",
- "userData": "string",
- "securityGroupIds": [
- [
- "sg-c3d914b0"
]
], - "iamInstanceProfile": {
- "arn": "orform"
}, - "keyPair": "spotinst-labs-oregon",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "loadBalancers": [
- {
- "type": "TARGET_GROUP",
- "name": "MyTargetGroup",
- "arn": "arn:aws:elasticloadbalancing:us-west-2:922761411234:targetgroup"
}
], - "associatePublicIpAddress": false,
- "monitoring": true,
- "ebsOptimized": true,
- "rootVolumeSize": 73,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
}, - "logging": {
- "export": {
- "s3": {
- "id": "di-123"
}
}
}
}, - "id": "o-482d9d26",
- "createdAt": "2018-11-05T12:55:50.000+0000",
- "updatedAt": "2018-11-05T12:58:15.000+0000"
}
]
}
}List the configurations for all Ocean clusters in the specified account.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "cluster": {
- "name": "oceanName",
- "controllerClusterId": "ocean.k8s",
- "region": "us-east-1",
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 180,
- "resourceLimits": {
- "maxMemoryGib": 1500,
- "maxVCpu": 750
}, - "down": {
- "maxScaleDownPercentage": 60
}, - "headroom": {
- "cpuPerUnit": 2000,
- "memoryPerUnit": 0,
- "gpuPerUnit": 0,
- "numOfUnits": 4
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": null,
- "enableAutomaticAndManualHeadroom": true
}, - "capacity": {
- "minimum": 0,
- "maximum": 1000,
- "target": 1
}, - "strategy": {
- "utilizeReservedInstances": true,
- "fallbackToOd": true,
- "gracePeriod": 600,
- "drainingTimeout": 60
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "cronExpression": "0 1 * * *",
- "taskType": "clusterRoll"
}
], - "shutdownHours": {
- "timeWindows": [
- "Sat:08:00-Sun:08:00"
], - "isEnabled": true
}
}, - "security": {
- "containerImage": {
- "approvedImages": [
- [
- "*.ecr.*.amazonaws.com/*",
- "docker.*"
]
]
}
}, - "compute": {
- "subnetIds": [
- [
- "subnet-4c1d1538",
- "subnet-2791bb61"
]
], - "instanceTypes": {
- "whitelist": [
- [
- "c4.2xlarge",
- "c4.xlarge",
- "c4.4xlarge",
- "c4.8xlarge"
]
], - "blacklist": [
- "string"
]
}, - "launchSpecification": {
- "useAsTemplateOnly": false,
- "imageId": "string",
- "userData": "string",
- "securityGroupIds": [
- [
- "sg-c3d914b0"
]
], - "iamInstanceProfile": {
- "arn": "orform"
}, - "keyPair": "spotinst-labs-oregon",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "loadBalancers": [
- {
- "type": "TARGET_GROUP",
- "name": "MyTargetGroup",
- "arn": "arn:aws:elasticloadbalancing:us-west-2:922761411234:targetgroup"
}
], - "associatePublicIpAddress": false,
- "monitoring": true,
- "ebsOptimized": true,
- "rootVolumeSize": 73,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
}, - "logging": {
- "export": {
- "s3": {
- "id": "di-123"
}
}
}
}, - "id": "o-482d9d26",
- "createdAt": "2018-11-05T12:55:50.000+0000",
- "updatedAt": "2018-11-05T12:58:15.000+0000"
}
]
}
}Delete an existing Ocean cluster.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Get the configuration of an existing Ocean cluster.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "cluster": {
- "name": "oceanName",
- "controllerClusterId": "ocean.k8s",
- "region": "us-east-1",
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 180,
- "resourceLimits": {
- "maxMemoryGib": 1500,
- "maxVCpu": 750
}, - "down": {
- "maxScaleDownPercentage": 60
}, - "headroom": {
- "cpuPerUnit": 2000,
- "memoryPerUnit": 0,
- "gpuPerUnit": 0,
- "numOfUnits": 4
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": null,
- "enableAutomaticAndManualHeadroom": true
}, - "capacity": {
- "minimum": 0,
- "maximum": 1000,
- "target": 1
}, - "strategy": {
- "utilizeReservedInstances": true,
- "fallbackToOd": true,
- "gracePeriod": 600,
- "drainingTimeout": 60
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "cronExpression": "0 1 * * *",
- "taskType": "clusterRoll"
}
], - "shutdownHours": {
- "timeWindows": [
- "Sat:08:00-Sun:08:00"
], - "isEnabled": true
}
}, - "security": {
- "containerImage": {
- "approvedImages": [
- [
- "*.ecr.*.amazonaws.com/*",
- "docker.*"
]
]
}
}, - "compute": {
- "subnetIds": [
- [
- "subnet-4c1d1538",
- "subnet-2791bb61"
]
], - "instanceTypes": {
- "whitelist": [
- [
- "c4.2xlarge",
- "c4.xlarge",
- "c4.4xlarge",
- "c4.8xlarge"
]
], - "blacklist": [
- "string"
]
}, - "launchSpecification": {
- "useAsTemplateOnly": false,
- "imageId": "string",
- "userData": "string",
- "securityGroupIds": [
- [
- "sg-c3d914b0"
]
], - "iamInstanceProfile": {
- "arn": "orform"
}, - "keyPair": "spotinst-labs-oregon",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "loadBalancers": [
- {
- "type": "TARGET_GROUP",
- "name": "MyTargetGroup",
- "arn": "arn:aws:elasticloadbalancing:us-west-2:922761411234:targetgroup"
}
], - "associatePublicIpAddress": false,
- "monitoring": true,
- "ebsOptimized": true,
- "rootVolumeSize": 73,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
}, - "logging": {
- "export": {
- "s3": {
- "id": "di-123"
}
}
}
}, - "id": "o-482d9d26",
- "createdAt": "2018-11-05T12:55:50.000+0000",
- "updatedAt": "2018-11-05T12:58:15.000+0000"
}
]
}
}All Ocean parameters are updatable, except for region and identifier. This API supports partial updates, so specific fields can be updated separately.
| oceanClusterId required | string Example: o-1abcd124 The identifier of the Ocean cluster |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| autoApplyTags | string Default: "false" Example: autoApplyTags=true Option to update instance tags on the fly without rolling the cluster. |
required | object (AWS Cluster) The object specifying the configuration of the Ocean cluster. |
{- "cluster": {
- "name": "oceanName",
- "controllerClusterId": "ocean.k8s",
- "region": "us-east-1",
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 180,
- "resourceLimits": {
- "maxMemoryGib": 1500,
- "maxVCpu": 750
}, - "down": {
- "maxScaleDownPercentage": 60
}, - "headroom": {
- "cpuPerUnit": 2000,
- "memoryPerUnit": 0,
- "gpuPerUnit": 0,
- "numOfUnits": 4
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": null,
- "enableAutomaticAndManualHeadroom": true
}, - "capacity": {
- "minimum": 0,
- "maximum": 1000,
- "target": 1
}, - "strategy": {
- "utilizeReservedInstances": true,
- "fallbackToOd": true,
- "gracePeriod": 600,
- "drainingTimeout": 60
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "cronExpression": "0 1 * * *",
- "taskType": "clusterRoll"
}
], - "shutdownHours": {
- "timeWindows": [
- "Sat:08:00-Sun:08:00"
], - "isEnabled": true
}
}, - "security": {
- "containerImage": {
- "approvedImages": [
- [
- "*.ecr.*.amazonaws.com/*",
- "docker.*"
]
]
}
}, - "compute": {
- "subnetIds": [
- [
- "subnet-4c1d1538",
- "subnet-2791bb61"
]
], - "instanceTypes": {
- "whitelist": [
- [
- "c4.2xlarge",
- "c4.xlarge",
- "c4.4xlarge",
- "c4.8xlarge"
]
], - "blacklist": [
- "string"
]
}, - "launchSpecification": {
- "useAsTemplateOnly": false,
- "imageId": "string",
- "userData": "string",
- "securityGroupIds": [
- [
- "sg-c3d914b0"
]
], - "iamInstanceProfile": {
- "arn": "orform"
}, - "keyPair": "spotinst-labs-oregon",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "loadBalancers": [
- {
- "type": "TARGET_GROUP",
- "name": "MyTargetGroup",
- "arn": "arn:aws:elasticloadbalancing:us-west-2:922761411234:targetgroup"
}
], - "associatePublicIpAddress": false,
- "monitoring": true,
- "ebsOptimized": true,
- "rootVolumeSize": 73,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
}, - "logging": {
- "export": {
- "s3": {
- "id": "di-123"
}
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "cluster": {
- "name": "oceanName",
- "controllerClusterId": "ocean.k8s",
- "region": "us-east-1",
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 180,
- "resourceLimits": {
- "maxMemoryGib": 1500,
- "maxVCpu": 750
}, - "down": {
- "maxScaleDownPercentage": 60
}, - "headroom": {
- "cpuPerUnit": 2000,
- "memoryPerUnit": 0,
- "gpuPerUnit": 0,
- "numOfUnits": 4
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": null,
- "enableAutomaticAndManualHeadroom": true
}, - "capacity": {
- "minimum": 0,
- "maximum": 1000,
- "target": 1
}, - "strategy": {
- "utilizeReservedInstances": true,
- "fallbackToOd": true,
- "gracePeriod": 600,
- "drainingTimeout": 60
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "cronExpression": "0 1 * * *",
- "taskType": "clusterRoll"
}
], - "shutdownHours": {
- "timeWindows": [
- "Sat:08:00-Sun:08:00"
], - "isEnabled": true
}
}, - "security": {
- "containerImage": {
- "approvedImages": [
- [
- "*.ecr.*.amazonaws.com/*",
- "docker.*"
]
]
}
}, - "compute": {
- "subnetIds": [
- [
- "subnet-4c1d1538",
- "subnet-2791bb61"
]
], - "instanceTypes": {
- "whitelist": [
- [
- "c4.2xlarge",
- "c4.xlarge",
- "c4.4xlarge",
- "c4.8xlarge"
]
], - "blacklist": [
- "string"
]
}, - "launchSpecification": {
- "useAsTemplateOnly": false,
- "imageId": "string",
- "userData": "string",
- "securityGroupIds": [
- [
- "sg-c3d914b0"
]
], - "iamInstanceProfile": {
- "arn": "orform"
}, - "keyPair": "spotinst-labs-oregon",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "loadBalancers": [
- {
- "type": "TARGET_GROUP",
- "name": "MyTargetGroup",
- "arn": "arn:aws:elasticloadbalancing:us-west-2:922761411234:targetgroup"
}
], - "associatePublicIpAddress": false,
- "monitoring": true,
- "ebsOptimized": true,
- "rootVolumeSize": 73,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
}, - "logging": {
- "export": {
- "s3": {
- "id": "di-123"
}
}
}
}, - "id": "o-482d9d26",
- "createdAt": "2018-11-05T12:55:50.000+0000",
- "updatedAt": "2018-11-05T12:58:15.000+0000"
}
]
}
}Get the heartbeat status of the Ocean Controller for the cluster.
The response returns the heartbeat status and the last heartbeat timestamp.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/k8s/cluster/o-e0a2bd7c/controllerHeartbeat",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "status": "ACTIVE",
- "lastHeartbeat": "2019-11-24T14:33:00.746Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:k8s:cluster:controllerHeartbeat"
}
}Fetch the log of an Ocean cluster.
| clusterIdentifier required | string Example: o-6e3819ae The reporting identifier of the Ocean Controller. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| fromDate required | string Beginning date value using either the date format "yyyy-mm-dd; 2016-11-20" or ms "1494751821472". |
| LIMIT | integer <= 1000 Default: 500 Example: LIMIT=200 Maximum number of lines to extract in a response. |
| resourceId | string Example: resourceId=i-12345678 Filter extracted log entries for a specific resource identifier. Default: Null |
| SEVERITY | string Default: "ALL" Enum: "ALL" "INFO" "DEBUG" "WARN" Example: SEVERITY=INFO Severity of log entries to extract. |
| toDate required | string End date value using either the date format "yyyy-mm-dd; 2016-11-20" or ms "1494751821472". |
{- "request": {
- "id": "3213f42e-455e-4801-a185-cd3eb65fac5f",
- "url": "/ocean/aws/k8s/cluster/o-e0a2bd7c/log?fromDate=2020-10-06&toDate=2020-10-08&severity=ALL&limit=500",
- "method": "GET",
- "timestamp": "2020-10-05T16:20:38.579Z"
}, - "response": {
- "status": {
- "code": "200",
- "message": "OK"
}, - "kind": "spotinst:ocean:cluster:log",
- "items": [
- {
- "message": "Ocean o-e0a2bd7c successfully created.",
- "severity": "INFO",
- "createdAt": "2020-10-07T09:51:12.000Z"
}
], - "count": "1"
}
}Create an Ocean configuration according to an AWS autoscaling group (ASG) configuration.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| autoScalingGroupName required | string Example: autoScalingGroupName=myAutoScalingGroup The ASG name. |
| region required | string Example: region=us-east-1 Region name of the ASG. |
object The object specifying the configuration of the VNG. |
{- "launchSpec": {
- "instanceTypes": [
- "c3.large",
- "m4.large"
]
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/aws/k8s/cluster/autoScalingGroup/import",
- "method": "POST",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "name": "TestASG1",
- "controllerClusterId": "ocean-ed609402-8557-4d18-818a-e549333cc11e",
- "region": "us-west-2",
- "capacity": {
- "minimum": 0,
- "maximum": 1000,
- "target": 1
}, - "compute": {
- "subnetIds": [
- [
- "subnet-00cab2dd9f40a9883",
- "subnet-0df9d512c7cbbd9e1"
]
], - "launchSpecification": {
- "securityGroupIds": [
- [
- "sg-03ccf232a2bf0f4ea"
]
], - "keyPair": "testteamkp",
- "imageId": "ami-0ce21b51cb31a54b8",
- "tags": {
- "tagKey": "AmazonECSManaged",
- "tagValue": ""
}, - "associatePublicIpAddress": "false",
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:k8s"
}
}Get right-sizing recommendations for an Ocean cluster and filter them according to namespace or label.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| namespace | string For Kubernetes, namespace is an optional query parameter which filters the retrieved resources. |
object Optional - may be null. |
{- "filter": {
- "namespaces": [
- [
- "sparkSpace",
- "kube-system"
]
], - "attribute": {
- "type": "label",
- "key": "app",
- "operator": "Equals",
- "value": "redis"
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/aws/k8s/cluster/o-abcd1234/rightSizing/suggestion",
- "method": "POST",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "resourceName": "redis-controller",
- "resourceType": "deployment",
- "namespace": "kube-system",
- "suggestedCPU": 4,
- "suggestedMemory": 19,
- "requestedCPU": 50,
- "requestedMemory": 50,
- "containers": [
- {
- "name": "dnsmasq",
- "requestedCPU": 10,
- "suggestedCPU": 2,
- "requestedMemory": 40,
- "suggestedMemory": 15
}, - {
- "name": "sidecar",
- "requestedCPU": 40,
- "suggestedCPU": 2,
- "requestedMemory": 10,
- "suggestedMemory": 4
}
]
}, - {
- "resourceName": "test-redis",
- "resourceType": "deployment",
- "namespace": "sparkSpace",
- "suggestedCPU": 2,
- "suggestedMemory": 20,
- "requestedCPU": 50,
- "requestedMemory": 30,
- "containers": [
- {
- "name": "dns-controller",
- "requestedCPU": 20,
- "suggestedCPU": 1,
- "requestedMemory": 20,
- "suggestedMemory": 15
}, - {
- "name": "kubedns",
- "requestedCPU": 30,
- "suggestedCPU": 1,
- "requestedMemory": 10,
- "suggestedMemory": 5
}
]
}
], - "count": 2,
- "kind": "spotinst:ocean:aws:k8s:cluster:rightSizing:suggestion"
}
}Describes Kubernetes cluster costs in a time range based on resource allocation.
The response will provide the distribution of the costs per cluster, namespace, and deployment.
For each entity, the response will contain a breakdown to compute and EBS costs as well.
In addition, the response will show labels or annotations for each namespace or deployment so you can filter costs by labels or annotations.
| clusterIdentifier required | string Example: ocean.k8s The reporting identifier of the Ocean Controller as set in the cluster configuration under the "controllerClusterId" field. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| aggregationPeriod | string The time segment over which data is calculated and displayed. The period may be "daily" or null. If you use "daily" the costs will be broken into parts, e.g., the cost per each day in the period. Otherwise, there will be only one cost per resource for the whole period. |
| fromDate required | string Beginning date value using either the date format "yyyy-mm-dd; 2016-11-20" or ms "1494751821472". |
| toDate required | string End date value using either the date format "yyyy-mm-dd; 2016-11-20" or ms "1494751821472". |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/mcs/kubernetes/cluster/my-cluster-identifier/costs",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "totalCost": 279.9907,
- "totalComputeCost": 279.9907,
- "totalEbsCost": 0,
- "totalStorageCost": 0,
- "namespaces": {
- "namespace": "default",
- "cost": 18.00862,
- "computeCost": 18.00862,
- "ebsCost": 0,
- "storageCost": 0,
- "labels": {
- "region": "west",
- "env": "prod"
}, - "annotations": {
- "region": "west",
- "env": "prod"
}, - "deployments": {
- "name": "cpu-deployment-check5",
- "namespace": "default",
- "cost": 3.7410312,
- "computeCost": 3.7410312,
- "ebsCost": 0,
- "storageCost": 0,
- "labels": {
- "region": "west",
- "env": "prod"
}, - "annotations": {
- "region": "west",
- "env": "prod"
}
}, - "statefulSets": {
- "name": "cpu-deployment-check5",
- "namespace": "default",
- "cost": 3.7410312,
- "computeCost": 3.7410312,
- "ebsCost": 0,
- "storageCost": 0,
- "labels": {
- "region": "west",
- "env": "prod"
}, - "annotations": {
- "region": "west",
- "env": "prod"
}
}, - "daemonSets": {
- "name": "cpu-deployment-check5",
- "namespace": "default",
- "cost": 3.7410312,
- "computeCost": 3.7410312,
- "ebsCost": 0,
- "storageCost": 0,
- "labels": {
- "region": "west",
- "env": "prod"
}, - "annotations": {
- "region": "west",
- "env": "prod"
}
}, - "jobs": {
- "name": "cpu-deployment-check5",
- "namespace": "default",
- "cost": 3.7410312,
- "computeCost": 3.7410312,
- "ebsCost": 0,
- "storageCost": 0,
- "labels": {
- "region": "west",
- "env": "prod"
}, - "annotations": {
- "region": "west",
- "env": "prod"
}
}, - "standAlonePodsCost": 0
}, - "deployments": {
- "name": "cpu-deployment-check5",
- "namespace": "default",
- "cost": 3.7410312,
- "computeCost": 3.7410312,
- "ebsCost": 0,
- "storageCost": 0,
- "labels": {
- "region": "west",
- "env": "prod"
}, - "annotations": {
- "region": "west",
- "env": "prod"
}
}, - "headroomCost": 0,
- "idleCost": 216.10321
}
], - "count": 1,
- "kind": "string"
}
}Upgrade an Elastigroup with Kubernetes integration to Ocean for Kubernetes cluster.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| groupId required | string Elastigroup identifier |
{- "kind": "spotinst:ocean:aws:k8s",
- "items": {
- "id": "o-482d9d26",
- "name": "Ocean::test-k8s-batch-1",
- "clusterName": "testEnvironment_Batch_852a670a-aa73-3d5d-9576-147a26d43401",
- "autoScaler": {
- "isEnabled": true,
- "isAutoConfig": true
}, - "region": "us-west-2",
- "groupId": "sig-b6bb68fb",
- "strategy": {
- "fallbackToOd": true,
- "spotPercentage": 100,
- "drainingTimeout": 120
}, - "compute": {
- "subnetIds": [
- [
- "subnet-4c1d1538",
- "subnet-2791bb61"
]
], - "instanceTypes": {
- "whitelist": [
- [
- "c4.2xlarge",
- "c4.xlarge",
- "c4.4xlarge",
- "c4.8xlarge"
]
], - "blacklist": [
- "string"
]
}, - "launchSpecification": {
- "useAsTemplateOnly": false,
- "imageId": "string",
- "userData": "string",
- "securityGroupIds": [
- [
- "sg-c3d914b0"
]
], - "iamInstanceProfile": {
- "arn": "orform"
}, - "keyPair": "spotinst-labs-oregon",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "loadBalancers": [
- {
- "type": "TARGET_GROUP",
- "name": "MyTargetGroup",
- "arn": "arn:aws:elasticloadbalancing:us-west-2:922761411234:targetgroup"
}
], - "associatePublicIpAddress": false,
- "monitoring": true,
- "ebsOptimized": true,
- "rootVolumeSize": 73,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
}, - "createdAt": "2018-11-05T12:55:50.000+0000",
- "updatedAt": "2018-11-05T12:58:15.000+0000"
}
}Roll an entire Ocean cluster or roll subsets of the cluster by specifying launchSpecIds or instanceIds. Performing this request will start the roll immediately and run it in defined batches. Note that the first response for a successful request will indicate the start of a roll. In order to check the status of a roll, you can use the GET Roll API.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object Object that specifies the parameters required to initiate a roll (also called a deployment). |
{- "roll": {
- "batchSizePercentage": 20,
- "comment": "This is why I deployed my cluster.",
- "launchSpecIds": [
- [
- "ols-76694a7d",
- "ols-56694a76"
]
], - "disableLaunchSpecAutoScaling": true,
- "instanceIds": [
- [
- "i-0003a99ffb566f039",
- "i-0567a99ffb566f765"
]
], - "respectPdb": true
}
}{- "id": "scr-5aaf854e",
- "status": "IN_PROGRESS",
- "currentBatch": 1,
- "numOfBatches": 5,
- "comment": "This is why I deployed my cluster.",
- "progress": {
- "unit": "percentage",
- "value": 0,
- "detailedStatus": {
- "oldInstances": [
- {
- "instanceId": "i-003a0281a24c01a20",
- "status": "REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a21",
- "status": "TO_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a22",
- "status": "COULD_NOT_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a23",
- "status": "NOT_REPLACED_DUE_TO_PDB"
}
]
}
}, - "oceanId": "o-12e31234",
- "instanceIds": [
- [
- "i-0003a99ffb566f039",
- "i-0567a99ffb566f765"
]
], - "launchSpecIds": [
- [
- "ols-76694a7d",
- "ols-56694a76"
]
], - "respectPdb": true,
- "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}Get status for all rolls of an Ocean cluster.
| oceanClusterId required | string Example: o-1abcd124 The identifier of the Ocean cluster |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:ocean:aws:k8s:cluster:roll",
- "items": [
- {
- "id": "scr-5aaf854e",
- "status": "IN_PROGRESS",
- "currentBatch": 1,
- "numOfBatches": 5,
- "comment": "This is why I deployed my cluster.",
- "progress": {
- "unit": "percentage",
- "value": 0,
- "detailedStatus": {
- "oldInstances": [
- {
- "instanceId": "i-003a0281a24c01a20",
- "status": "REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a21",
- "status": "TO_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a22",
- "status": "COULD_NOT_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a23",
- "status": "NOT_REPLACED_DUE_TO_PDB"
}
]
}
}, - "oceanId": "o-12e31234",
- "instanceIds": [
- [
- "i-0003a99ffb566f039",
- "i-0567a99ffb566f765"
]
], - "launchSpecIds": [
- [
- "ols-76694a7d",
- "ols-56694a76"
]
], - "respectPdb": true,
- "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}
]
}Update a roll of an Ocean cluster.
Performing the request will stop the next batch in a roll.
| oceanClusterId required | string Example: o-1abcd124 The identifier of the Ocean cluster |
| ROLL_ID required | string Example: scr-12345abc Ocean cluster roll identifier |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object Object that specifies the parameters required to initiate a roll (also called a deployment). |
{- "roll": {
- "status": "STOPPED"
}
}{- "id": "scr-5aaf854e",
- "status": "STOPPED",
- "currentBatch": 1,
- "numOfBatches": 5,
- "progress": {
- "unit": "percentage",
- "value": 0,
- "detailedStatus": {
- "oldInstances": [
- {
- "instanceId": "i-003a0281a24c01a20",
- "status": "REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a21",
- "status": "TO_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a22",
- "status": "COULD_NOT_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a23",
- "status": "NOT_REPLACED_DUE_TO_PDB"
}
]
}
}, - "oceanId": "o-12e31234",
- "respectPdb": true,
- "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}Get status for a roll of an Ocean cluster.
| oceanClusterId required | string Example: o-1abcd124 The identifier of the Ocean cluster |
| ROLL_ID required | string Example: scr-12345abc Ocean Cluster Roll identifier |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "id": "scr-5aaf854e",
- "status": "IN_PROGRESS",
- "currentBatch": 1,
- "numOfBatches": 5,
- "comment": "This is why I deployed my cluster.",
- "progress": {
- "unit": "percentage",
- "value": 0,
- "detailedStatus": {
- "oldInstances": [
- {
- "instanceId": "i-003a0281a24c01a20",
- "status": "REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a21",
- "status": "TO_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a22",
- "status": "COULD_NOT_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a23",
- "status": "NOT_REPLACED_DUE_TO_PDB"
}
]
}
}, - "oceanId": "o-12e31234",
- "instanceIds": [
- [
- "i-0003a99ffb566f039",
- "i-0567a99ffb566f765"
]
], - "launchSpecIds": [
- [
- "ols-76694a7d",
- "ols-56694a76"
]
], - "respectPdb": true,
- "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}Get nodes data of an Ocean cluster.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| instanceId | string Example: instanceId=i-123 Get a specific node by instance id. |
| launchSpecId | string Example: launchSpecId=ols-123abc Ocean cluster launch specification identifier. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/aws/k8s/cluster/o-12345abc/nodes",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "instanceId": "i-123",
- "instanceType": "c3.large",
- "availabilityZone": "us-west-2b",
- "launchSpecId": "ols-123",
- "launchSpecName": "dev-launchSpec",
- "lifeCycle": "Spot",
- "publicIp": "1.2.3.4",
- "workloadRequestedMilliCpu": 1320,
- "workloadRequestedMemoryInMiB": 500,
- "workloadRequestedGpu": 1,
- "headroomRequestedMilliCpu": 1320,
- "headroomRequestedMemoryInMiB": 512,
- "headroomRequestedGpu": 1,
- "allocatableMilliCpu": 2000,
- "allocatableMemoryInMiB": 3646.1,
- "allocatableGpu": 1,
- "nodeName": "node-1",
- "registrationStatus": "Registered",
- "createdAt": "2021-10-01T05:51:06.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:k8s:nodes"
}
}Create a Virtual Node Group.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| initialNodes | integer Default: null Example: initialNodes=1 When set to an integer greater than 0, a corresponding number of nodes will be launched from the virtual node group created. |
required | object (oceanClusterLaunchSpec) AWS Cluster Virtual Node Group (VNG). |
{- "launchSpec": {
- "oceanId": "o-123",
- "name": "specialty.nodes.spotk8s.com",
- "imageId": "ami-ID",
- "userData": "dsa89d7uosduxq98sau9s8aux9s8aux09q0qu09axsuix0s9qas09xz",
- "iamInstanceProfile": {
- "arn": "arn:aws:iam::123456781234:instance-profile/EKS-nodes-test-NodeInstanceProfile-ABCDEFGH123",
- "name": "EKS-nodes-test"
}, - "securityGroupIds": [
- "sg-0ded3a2980208c30c",
- "sg-0ded3a2980208c30d"
], - "instanceTypes": [
- "c3.2xlarge",
- "c4.2xlarge"
], - "preferredSpotTypes": [
- "c3.2xlarge",
- "c4.2xlarge"
], - "rootVolumeSize": 8,
- "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "subnetIds": [
- "subnet-123",
- "subnet-456"
], - "elasticIpPool": {
- "tagSelector": {
- "tagKey": "color",
- "tagValue": "orange"
}
}, - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1024,
- "memoryPerUnit": 512,
- "numOfUnits": 2,
- "gpuPerUnit": 0
}
]
}, - "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "resourceLimits": {
- "maxInstanceCount": 5,
- "minInstanceCount": 2
}, - "strategy": {
- "spotPercentage": 70
}, - "associatePublicIpAddress": false,
- "restrictScaleDown": false,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/aws/k8s/launchSpec",
- "method": "POST",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "ols-12345abc",
- "oceanId": "o-123",
- "name": "specialty.nodes.spotk8s.com",
- "imageId": "ami-ID",
- "userData": "dsa89d7uosduxq98sau9s8aux9s8aux09q0qu09axsuix0s9qas09xz",
- "iamInstanceProfile": {
- "arn": "arn:aws:iam::123456781234:instance-profile/EKS-nodes-test-NodeInstanceProfile-ABCDEFGH123",
- "name": "EKS-nodes-test"
}, - "securityGroupIds": [
- "sg-0ded3a2980208c30c",
- "sg-0ded3a2980208c30d"
], - "instanceTypes": [
- "c3.2xlarge",
- "c4.2xlarge"
], - "preferredSpotTypes": [
- "c3.2xlarge",
- "c4.2xlarge"
], - "rootVolumeSize": 8,
- "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "subnetIds": [
- "subnet-123",
- "subnet-456"
], - "elasticIpPool": {
- "tagSelector": {
- "tagKey": "color",
- "tagValue": "orange"
}
}, - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1024,
- "memoryPerUnit": 512,
- "numOfUnits": 2,
- "gpuPerUnit": 0
}
]
}, - "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "resourceLimits": {
- "maxInstanceCount": 5,
- "minInstanceCount": 2
}, - "strategy": {
- "spotPercentage": 70
}, - "associatePublicIpAddress": false,
- "restrictScaleDown": false,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:k8s:launchSpec"
}
}List the configurations of all virtual node groups for the cluster.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| oceanId required | string Example: oceanId=o-12345abc Identifier of the Ocean cluster. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/aws/k8s/launchSpec",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "ols-12345abc",
- "oceanId": "o-123",
- "name": "specialty.nodes.spotk8s.com",
- "imageId": "ami-ID",
- "userData": "dsa89d7uosduxq98sau9s8aux9s8aux09q0qu09axsuix0s9qas09xz",
- "iamInstanceProfile": {
- "arn": "arn:aws:iam::123456781234:instance-profile/EKS-nodes-test-NodeInstanceProfile-ABCDEFGH123",
- "name": "EKS-nodes-test"
}, - "securityGroupIds": [
- "sg-0ded3a2980208c30c",
- "sg-0ded3a2980208c30d"
], - "instanceTypes": [
- "c3.2xlarge",
- "c4.2xlarge"
], - "preferredSpotTypes": [
- "c3.2xlarge",
- "c4.2xlarge"
], - "rootVolumeSize": 8,
- "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "subnetIds": [
- "subnet-123",
- "subnet-456"
], - "elasticIpPool": {
- "tagSelector": {
- "tagKey": "color",
- "tagValue": "orange"
}
}, - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1024,
- "memoryPerUnit": 512,
- "numOfUnits": 2,
- "gpuPerUnit": 0
}
]
}, - "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "resourceLimits": {
- "maxInstanceCount": 5,
- "minInstanceCount": 2
}, - "strategy": {
- "spotPercentage": 70
}, - "associatePublicIpAddress": false,
- "restrictScaleDown": false,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:k8s:launchSpec"
}
}Delete a specified launch specification in an Ocean cluster.
| oceanLaunchSpecId required | string Ocean cluster launch specification identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| deleteNodes | boolean Default: false Example: deleteNodes=true When set to "true", all instances belonging to the deleted launch specification will be drained, detached, and terminated. |
| forceDelete | boolean Default: null Example: forceDelete=true When set to "true", delete even if it is the only custom launch spec remaining, and default launch spec has useAsTemlateOnly = true. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/aws/k8s/launchSpec/ols-12345abc",
- "method": "DELETE",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Update launch specification.
| oceanLaunchSpecId required | string Ocean cluster launch specification identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| autoApplyTags | boolean Default: false Example: autoApplyTags=true Optionally update resource tags on the fly without performing a roll. |
required | object (oceanClusterLaunchSpec) AWS Cluster Virtual Node Group (VNG). |
{- "launchSpec": {
- "oceanId": "o-123",
- "name": "specialty.nodes.spotk8s.com",
- "imageId": "ami-ID",
- "userData": "dsa89d7uosduxq98sau9s8aux9s8aux09q0qu09axsuix0s9qas09xz",
- "iamInstanceProfile": {
- "arn": "arn:aws:iam::123456781234:instance-profile/EKS-nodes-test-NodeInstanceProfile-ABCDEFGH123",
- "name": "EKS-nodes-test"
}, - "securityGroupIds": [
- "sg-0ded3a2980208c30c",
- "sg-0ded3a2980208c30d"
], - "instanceTypes": [
- "c3.2xlarge",
- "c4.2xlarge"
], - "preferredSpotTypes": [
- "c3.2xlarge",
- "c4.2xlarge"
], - "rootVolumeSize": 8,
- "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "subnetIds": [
- "subnet-123",
- "subnet-456"
], - "elasticIpPool": {
- "tagSelector": {
- "tagKey": "color",
- "tagValue": "orange"
}
}, - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1024,
- "memoryPerUnit": 512,
- "numOfUnits": 2,
- "gpuPerUnit": 0
}
]
}, - "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "resourceLimits": {
- "maxInstanceCount": 5,
- "minInstanceCount": 2
}, - "strategy": {
- "spotPercentage": 70
}, - "associatePublicIpAddress": false,
- "restrictScaleDown": false,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/aws/k8s/launchSpec/ols-12345abc",
- "method": "PUT",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "ols-12345abc",
- "oceanId": "o-123",
- "name": "specialty.nodes.spotk8s.com",
- "imageId": "ami-ID",
- "userData": "dsa89d7uosduxq98sau9s8aux9s8aux09q0qu09axsuix0s9qas09xz",
- "iamInstanceProfile": {
- "arn": "arn:aws:iam::123456781234:instance-profile/EKS-nodes-test-NodeInstanceProfile-ABCDEFGH123",
- "name": "EKS-nodes-test"
}, - "securityGroupIds": [
- "sg-0ded3a2980208c30c",
- "sg-0ded3a2980208c30d"
], - "instanceTypes": [
- "c3.2xlarge",
- "c4.2xlarge"
], - "preferredSpotTypes": [
- "c3.2xlarge",
- "c4.2xlarge"
], - "rootVolumeSize": 8,
- "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "subnetIds": [
- "subnet-123",
- "subnet-456"
], - "elasticIpPool": {
- "tagSelector": {
- "tagKey": "color",
- "tagValue": "orange"
}
}, - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1024,
- "memoryPerUnit": 512,
- "numOfUnits": 2,
- "gpuPerUnit": 0
}
]
}, - "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "resourceLimits": {
- "maxInstanceCount": 5,
- "minInstanceCount": 2
}, - "strategy": {
- "spotPercentage": 70
}, - "associatePublicIpAddress": false,
- "restrictScaleDown": false,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:k8s:launchSpec"
}
}| oceanLaunchSpecId required | string Ocean cluster launch specification identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/aws/k8s/launchSpec/ols-12345abc",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "ols-12345abc",
- "oceanId": "o-123",
- "name": "specialty.nodes.spotk8s.com",
- "imageId": "ami-ID",
- "userData": "dsa89d7uosduxq98sau9s8aux9s8aux09q0qu09axsuix0s9qas09xz",
- "iamInstanceProfile": {
- "arn": "arn:aws:iam::123456781234:instance-profile/EKS-nodes-test-NodeInstanceProfile-ABCDEFGH123",
- "name": "EKS-nodes-test"
}, - "securityGroupIds": [
- "sg-0ded3a2980208c30c",
- "sg-0ded3a2980208c30d"
], - "instanceTypes": [
- "c3.2xlarge",
- "c4.2xlarge"
], - "preferredSpotTypes": [
- "c3.2xlarge",
- "c4.2xlarge"
], - "rootVolumeSize": 8,
- "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "subnetIds": [
- "subnet-123",
- "subnet-456"
], - "elasticIpPool": {
- "tagSelector": {
- "tagKey": "color",
- "tagValue": "orange"
}
}, - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1024,
- "memoryPerUnit": 512,
- "numOfUnits": 2,
- "gpuPerUnit": 0
}
]
}, - "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "resourceLimits": {
- "maxInstanceCount": 5,
- "minInstanceCount": 2
}, - "strategy": {
- "spotPercentage": 70
}, - "associatePublicIpAddress": false,
- "restrictScaleDown": false,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:k8s:launchSpec"
}
}Returns an Ocean Virtual Node Group (VNG) configuration in a given AWS autoscaling group (ASG). The returned value ("Imported VNG") can then be used as input to the Create Virtual Node Group API in order to create an actual VNG in your Ocean cluster.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| autoScalingGroupName required | string Example: autoScalingGroupName=myAutoScalingGroup The ASG name. |
| oceanId required | string Example: oceanId=o-12345abc Identifier of the Ocean cluster. |
object The object specifying the configuration of the VNG. |
{- "launchSpec": {
- "name": "specialty.nodes.spotk8s.com",
- "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
]
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/aws/k8s/launchSpec/autoScalingGroup/import",
- "method": "POST",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "oceanId": "o-500a5d5a",
- "name": "TestTeam1",
- "imageId": "ami-0ce21b51cb55a48b8",
- "securityGroupIds": [
- [
- "sg-03ccf232a2bf0f4ea"
]
], - "tags": {
- "tagKey": "AmazonECSManaged",
- "tagValue": ""
}, - "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:k8s:launchSpec"
}
}| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| eksClusterName required | string Example: eksClusterName=MyEksCluster Cluster name of the EKS cluster. |
| eksNodeGroupName required | string Example: eksNodeGroupName=MyEksClusterNodeGroup Node group name to import. |
| oceanId | string Example: oceanId=o-12345abc Identifier of the Ocean cluster. |
| region | string Example: region=us-east-1 Region name of the EKS cluster's node group. |
object The object specifying the configuration of the VNG. |
{- "launchSpec": {
- "name": "specialty.nodes.spotk8s.com",
- "labels": [
- {
- "key": "env",
- "value": "test"
}
]
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/aws/k8s/launchSpec/eksNodeGroup/import",
- "method": "POST",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "oceanId": "o-500a5d5a",
- "name": "TestTeam1",
- "imageId": "ami-0ce21b51cb55a48b8",
- "securityGroupIds": [
- "sg-03ccf232a2bf0f4ea"
], - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:k8s:launchSpec"
}
}Launch nodes in Virtual Node Group.
| oceanLaunchSpecId required | string Ocean cluster launch specification identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object (Ocean AWS Virtual Node Group Launch Request) Object specifying the details for the launch request. |
{- "launchRequest": {
- "amount": 5
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/aws/k8s/launchSpec/ols-12345abc/launchNodes",
- "method": "PUT",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "newInstances": [
- {
- "instanceId": "i-08d53d2a1dcede08f",
- "availabilityZone": "us-west-2b",
- "instanceType": "c3.xlarge",
- "lifeCycle": "spot"
}
]
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:k8s:launchSpec:launchNodes",
- "launchSpecId": "ols-f73821bc"
}
}Ocean - Serverless containers for Amazon Elastic Container Service (ECS)
Get the configurations for all Ocean clusters in the specified account.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "cluster": {
- "id": "o-12345abc",
- "name": "Ocean::my-elastigroup-name",
- "clusterName": "my-ECS-cluster-name",
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 300,
- "attributes": {
- "key": "the_key",
- "value": "the_value"
}, - "resourceLimits": {
- "maxMemoryGib": 1,
- "maxVcpu": 1
}, - "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": 20,
- "shouldScaleDownNonServiceTasks": true,
- "enableAutomaticAndManualHeadroom": false
}, - "region": "us-east-1",
- "capacity": {
- "minimum": 1,
- "maximum": 10,
- "target": 5,
- "unit": "instance"
}, - "strategy": {
- "utilizeReservedInstances": true,
- "fallbackToOd": true,
- "spotPercentage": 100,
- "drainingTimeout": 200
}, - "compute": {
- "subnetIds": [
- "subnet-1234abcd"
], - "launchSpecification": {
- "imageId": "ami-123456789abcdefgh",
- "securityGroupIds": [
- "sg-abcdefgh123456789"
], - "iamInstanceProfile": {
- "arn": "my-arn"
}, - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": null,
- "deleteOnTermination": null,
- "encrypted": null,
- "iops": null,
- "kmsKeyId": null,
- "snapshotId": null,
- "volumeType": null,
- "volumeSize": null,
- "dynamicVolumeSize": { }
}
}
], - "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "userData": "Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT01MTg5MDY1Mzc3MjIyODk4NDA3PT0iCk1JTUUtVmVyc2lvbjogMS4wCgotLT09PT09PT09PT09PT09PTUxODkwNjUzNzcyMjI4OTg0MDc9PQp"
}, - "optimizeImage": {
- "shouldOptimizeEcsAmi": "true",
- "performAt": "never",
- "timeWindows": [
- "['Sun:02:00-Sun:12:00', 'Wed:01:01-Fri:02:03']"
]
}
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": false,
- "cronExpression": "string",
- "taskType": "clusterRoll"
}
], - "shutdownHours": {
- "timeWindows": [
- "Sat:08:00-Sun:08:00"
], - "isEnabled": true
}
}, - "logging": {
- "export": {
- "s3": {
- "id": "di-123"
}
}
}, - "createdAt": "2019-06-03T08:13:08.000Z",
- "updatedAt": "2019-06-10T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs"
}
}Create a new Ocean ECS cluster in the specified account.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object (ECS Ocean) |
{- "cluster": {
- "name": "Ocean::my-elastigroup-name",
- "clusterName": "my-ECS-cluster-name",
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 300,
- "attributes": {
- "key": "the_key",
- "value": "the_value"
}, - "resourceLimits": {
- "maxMemoryGib": 1,
- "maxVcpu": 1
}, - "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": 20,
- "shouldScaleDownNonServiceTasks": true,
- "enableAutomaticAndManualHeadroom": false
}, - "region": "us-east-1",
- "capacity": {
- "minimum": 1,
- "maximum": 10,
- "target": 5,
- "unit": "instance"
}, - "strategy": {
- "utilizeReservedInstances": true,
- "fallbackToOd": true,
- "spotPercentage": 100,
- "drainingTimeout": 200
}, - "compute": {
- "subnetIds": [
- "subnet-1234abcd"
], - "launchSpecification": {
- "imageId": "ami-123456789abcdefgh",
- "securityGroupIds": [
- "sg-abcdefgh123456789"
], - "iamInstanceProfile": {
- "arn": "my-arn"
}, - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "userData": "Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT01MTg5MDY1Mzc3MjIyODk4NDA3PT0iCk1JTUUtVmVyc2lvbjogMS4wCgotLT09PT09PT09PT09PT09PTUxODkwNjUzNzcyMjI4OTg0MDc9PQp"
}, - "optimizeImage": {
- "shouldOptimizeEcsAmi": "true",
- "performAt": "never",
- "timeWindows": [
- "['Sun:02:00-Sun:12:00', 'Wed:01:01-Fri:02:03']"
]
}
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": false,
- "cronExpression": "string",
- "taskType": "clusterRoll"
}
], - "shutdownHours": {
- "timeWindows": [
- "Sat:08:00-Sun:08:00"
], - "isEnabled": true
}
}, - "logging": {
- "export": {
- "s3": {
- "id": "di-123"
}
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "cluster": {
- "id": "o-12345abc",
- "name": "Ocean::my-elastigroup-name",
- "clusterName": "my-ECS-cluster-name",
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 300,
- "attributes": {
- "key": "the_key",
- "value": "the_value"
}, - "resourceLimits": {
- "maxMemoryGib": 1,
- "maxVcpu": 1
}, - "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": 20,
- "shouldScaleDownNonServiceTasks": true,
- "enableAutomaticAndManualHeadroom": false
}, - "region": "us-east-1",
- "capacity": {
- "minimum": 1,
- "maximum": 10,
- "target": 5,
- "unit": "instance"
}, - "strategy": {
- "utilizeReservedInstances": true,
- "fallbackToOd": true,
- "spotPercentage": 100,
- "drainingTimeout": 200
}, - "compute": {
- "subnetIds": [
- "subnet-1234abcd"
], - "launchSpecification": {
- "imageId": "ami-123456789abcdefgh",
- "securityGroupIds": [
- "sg-abcdefgh123456789"
], - "iamInstanceProfile": {
- "arn": "my-arn"
}, - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": null,
- "deleteOnTermination": null,
- "encrypted": null,
- "iops": null,
- "kmsKeyId": null,
- "snapshotId": null,
- "volumeType": null,
- "volumeSize": null,
- "dynamicVolumeSize": { }
}
}
], - "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "userData": "Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT01MTg5MDY1Mzc3MjIyODk4NDA3PT0iCk1JTUUtVmVyc2lvbjogMS4wCgotLT09PT09PT09PT09PT09PTUxODkwNjUzNzcyMjI4OTg0MDc9PQp"
}, - "optimizeImage": {
- "shouldOptimizeEcsAmi": "true",
- "performAt": "never",
- "timeWindows": [
- "['Sun:02:00-Sun:12:00', 'Wed:01:01-Fri:02:03']"
]
}
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": false,
- "cronExpression": "string",
- "taskType": "clusterRoll"
}
], - "shutdownHours": {
- "timeWindows": [
- "Sat:08:00-Sun:08:00"
], - "isEnabled": true
}
}, - "logging": {
- "export": {
- "s3": {
- "id": "di-123"
}
}
}, - "createdAt": "2019-06-03T08:13:08.000Z",
- "updatedAt": "2019-06-10T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs"
}
}Get the configurations for a specified Ocean cluster.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "cluster": {
- "id": "o-12345abc",
- "name": "Ocean::my-elastigroup-name",
- "clusterName": "my-ECS-cluster-name",
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 300,
- "attributes": {
- "key": "the_key",
- "value": "the_value"
}, - "resourceLimits": {
- "maxMemoryGib": 1,
- "maxVcpu": 1
}, - "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": 20,
- "shouldScaleDownNonServiceTasks": true,
- "enableAutomaticAndManualHeadroom": false
}, - "region": "us-east-1",
- "capacity": {
- "minimum": 1,
- "maximum": 10,
- "target": 5,
- "unit": "instance"
}, - "strategy": {
- "utilizeReservedInstances": true,
- "fallbackToOd": true,
- "spotPercentage": 100,
- "drainingTimeout": 200
}, - "compute": {
- "subnetIds": [
- "subnet-1234abcd"
], - "launchSpecification": {
- "imageId": "ami-123456789abcdefgh",
- "securityGroupIds": [
- "sg-abcdefgh123456789"
], - "iamInstanceProfile": {
- "arn": "my-arn"
}, - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": null,
- "deleteOnTermination": null,
- "encrypted": null,
- "iops": null,
- "kmsKeyId": null,
- "snapshotId": null,
- "volumeType": null,
- "volumeSize": null,
- "dynamicVolumeSize": { }
}
}
], - "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "userData": "Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT01MTg5MDY1Mzc3MjIyODk4NDA3PT0iCk1JTUUtVmVyc2lvbjogMS4wCgotLT09PT09PT09PT09PT09PTUxODkwNjUzNzcyMjI4OTg0MDc9PQp"
}, - "optimizeImage": {
- "shouldOptimizeEcsAmi": "true",
- "performAt": "never",
- "timeWindows": [
- "['Sun:02:00-Sun:12:00', 'Wed:01:01-Fri:02:03']"
]
}
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": false,
- "cronExpression": "string",
- "taskType": "clusterRoll"
}
], - "shutdownHours": {
- "timeWindows": [
- "Sat:08:00-Sun:08:00"
], - "isEnabled": true
}
}, - "logging": {
- "export": {
- "s3": {
- "id": "di-123"
}
}
}, - "createdAt": "2019-06-03T08:13:08.000Z",
- "updatedAt": "2019-06-10T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs"
}
}All Ocean parameters are updatable, excluding Region and ID. This API supports partial updates, so specific fields can be updated separately.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| autoApplyTags | boolean Default: false Example: autoApplyTags=true Optionally update resource tags on the fly without performing a roll. |
required | object (ECS Ocean) |
{- "cluster": {
- "name": "Ocean::my-elastigroup-name",
- "clusterName": "my-ECS-cluster-name",
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 300,
- "attributes": {
- "key": "the_key",
- "value": "the_value"
}, - "resourceLimits": {
- "maxMemoryGib": 1,
- "maxVcpu": 1
}, - "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": 20,
- "shouldScaleDownNonServiceTasks": true,
- "enableAutomaticAndManualHeadroom": false
}, - "region": "us-east-1",
- "capacity": {
- "minimum": 1,
- "maximum": 10,
- "target": 5,
- "unit": "instance"
}, - "strategy": {
- "utilizeReservedInstances": true,
- "fallbackToOd": true,
- "spotPercentage": 100,
- "drainingTimeout": 200
}, - "compute": {
- "subnetIds": [
- "subnet-1234abcd"
], - "launchSpecification": {
- "imageId": "ami-123456789abcdefgh",
- "securityGroupIds": [
- "sg-abcdefgh123456789"
], - "iamInstanceProfile": {
- "arn": "my-arn"
}, - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "userData": "Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT01MTg5MDY1Mzc3MjIyODk4NDA3PT0iCk1JTUUtVmVyc2lvbjogMS4wCgotLT09PT09PT09PT09PT09PTUxODkwNjUzNzcyMjI4OTg0MDc9PQp"
}, - "optimizeImage": {
- "shouldOptimizeEcsAmi": "true",
- "performAt": "never",
- "timeWindows": [
- "['Sun:02:00-Sun:12:00', 'Wed:01:01-Fri:02:03']"
]
}
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": false,
- "cronExpression": "string",
- "taskType": "clusterRoll"
}
], - "shutdownHours": {
- "timeWindows": [
- "Sat:08:00-Sun:08:00"
], - "isEnabled": true
}
}, - "logging": {
- "export": {
- "s3": {
- "id": "di-123"
}
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "cluster": {
- "id": "o-12345abc",
- "name": "Ocean::my-elastigroup-name",
- "clusterName": "my-ECS-cluster-name",
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 300,
- "attributes": {
- "key": "the_key",
- "value": "the_value"
}, - "resourceLimits": {
- "maxMemoryGib": 1,
- "maxVcpu": 1
}, - "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": 20,
- "shouldScaleDownNonServiceTasks": true,
- "enableAutomaticAndManualHeadroom": false
}, - "region": "us-east-1",
- "capacity": {
- "minimum": 1,
- "maximum": 10,
- "target": 5,
- "unit": "instance"
}, - "strategy": {
- "utilizeReservedInstances": true,
- "fallbackToOd": true,
- "spotPercentage": 100,
- "drainingTimeout": 200
}, - "compute": {
- "subnetIds": [
- "subnet-1234abcd"
], - "launchSpecification": {
- "imageId": "ami-123456789abcdefgh",
- "securityGroupIds": [
- "sg-abcdefgh123456789"
], - "iamInstanceProfile": {
- "arn": "my-arn"
}, - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": null,
- "deleteOnTermination": null,
- "encrypted": null,
- "iops": null,
- "kmsKeyId": null,
- "snapshotId": null,
- "volumeType": null,
- "volumeSize": null,
- "dynamicVolumeSize": { }
}
}
], - "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "userData": "Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT01MTg5MDY1Mzc3MjIyODk4NDA3PT0iCk1JTUUtVmVyc2lvbjogMS4wCgotLT09PT09PT09PT09PT09PTUxODkwNjUzNzcyMjI4OTg0MDc9PQp"
}, - "optimizeImage": {
- "shouldOptimizeEcsAmi": "true",
- "performAt": "never",
- "timeWindows": [
- "['Sun:02:00-Sun:12:00', 'Wed:01:01-Fri:02:03']"
]
}
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": false,
- "cronExpression": "string",
- "taskType": "clusterRoll"
}
], - "shutdownHours": {
- "timeWindows": [
- "Sat:08:00-Sun:08:00"
], - "isEnabled": true
}
}, - "logging": {
- "export": {
- "s3": {
- "id": "di-123"
}
}
}, - "createdAt": "2019-06-03T08:13:08.000Z",
- "updatedAt": "2019-06-10T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs"
}
}Delete a specified Ocean cluster.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Create Ocean cluster object from an existing ECS cluster with at least one container instance to be used as input for create cluster.
This route will not register the ECS cluster to Ocean.
| EcsClusterName required | string Example: ecsName ECS Cluster name |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| name | string The name for the new Ocean cluster object. |
| region required | string The region that the ECS cluster is running at. |
{- "region": "us-east-1",
- "name": "oceanName"
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/aws/ecs/cluster/my-ECS-cluster-name/import",
- "method": "POST",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "cluster": {
- "name": "my-Ocean-ECS-cluster",
- "clusterName": "my-ECS-cluster-name",
- "region": "us-east-1",
- "compute": {
- "subnetIds": [
- "subnet-1234abcd"
], - "launchSpecification": {
- "imageId": "ami-123456789abcdefgh",
- "securityGroupIds": [
- "sg-abcdefgh123456789"
], - "keyPair": "dev-keypair",
- "userData": "userData",
- "iamInstanceProfile": {
- "arn": "my-arn"
}, - "tags": {
- "tagKey": "env",
- "tagValue": "dev"
}, - "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
}
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs"
}
}Get the log of an Ocean Cluster.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| fromDate required | string Beginning date value using either the date format "yyyy-mm-dd; 2016-11-20" or ms "1494751821472". |
| LIMIT | integer <= 1000 Default: 500 Example: LIMIT=200 Maximum number of lines to extract in a response. |
| resourceId | string Example: resourceId=i-12345678 Filter extracted log entries for a specific resource identifier. Default: Null |
| SEVERITY | string Default: "ALL" Enum: "ALL" "INFO" "DEBUG" "WARN" Example: SEVERITY=INFO Severity of log entries to extract. |
| toDate required | string End date value using either the date format "yyyy-mm-dd; 2016-11-20" or ms "1494751821472". |
{- "request": {
- "id": "3213f42e-455e-4801-a185-cd3eb65fac5f",
- "url": "/ocean/aws/ecs/cluster/o-e0a2bd7c/log?fromDate=2020-10-06&toDate=2020-10-08&severity=ALL&limit=500",
- "method": "GET",
- "timestamp": "2020-10-05T16:20:38.579Z"
}, - "response": {
- "status": {
- "code": "200",
- "message": "OK"
}, - "kind": "spotinst:ocean:cluster:log",
- "items": [
- {
- "message": "Instances Terminated - ECS Autoscaler ,Terminated 1, List of instances: [i-0914721d46ebbabb2]",
- "severity": "INFO",
- "createdAt": "2020-10-07T09:51:12.000Z"
}, - {
- "message": "Instances: [i-0914721d46ebbabb2] have been detached. Reason: Auto scale",
- "severity": "INFO",
- "createdAt": "2020-10-07T09:51:11.000Z"
}
], - "count": "2"
}
}Get right-sizing recommendations for an Ocean cluster.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "suggestedMemory": 2,
- "requestedMemory": 100,
- "serviceName": "sg-test",
- "suggestedCpu": 0,
- "requestedCpu": 128
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs:cluster:rightSizing:resourceSuggestion"
}
}Upgrade an Elastigroup with ECS integration into Ocean for ECS cluster.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| groupId required | string Example: groupId=sig-1234abcd The identifier of the Elastigroup to upgrade. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "cluster": {
- "id": "o-12345abc",
- "name": "Ocean::my-elastigroup-name",
- "clusterName": "my-ECS-cluster-name",
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 300,
- "attributes": {
- "key": "the_key",
- "value": "the_value"
}, - "resourceLimits": {
- "maxMemoryGib": 1,
- "maxVcpu": 1
}, - "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": 20,
- "shouldScaleDownNonServiceTasks": true,
- "enableAutomaticAndManualHeadroom": false
}, - "region": "us-east-1",
- "capacity": {
- "minimum": 1,
- "maximum": 10,
- "target": 5,
- "unit": "instance"
}, - "strategy": {
- "utilizeReservedInstances": true,
- "fallbackToOd": true,
- "spotPercentage": 100,
- "drainingTimeout": 200
}, - "compute": {
- "subnetIds": [
- "subnet-1234abcd"
], - "launchSpecification": {
- "imageId": "ami-123456789abcdefgh",
- "securityGroupIds": [
- "sg-abcdefgh123456789"
], - "iamInstanceProfile": {
- "arn": "my-arn"
}, - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": null,
- "deleteOnTermination": null,
- "encrypted": null,
- "iops": null,
- "kmsKeyId": null,
- "snapshotId": null,
- "volumeType": null,
- "volumeSize": null,
- "dynamicVolumeSize": { }
}
}
], - "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "userData": "Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT01MTg5MDY1Mzc3MjIyODk4NDA3PT0iCk1JTUUtVmVyc2lvbjogMS4wCgotLT09PT09PT09PT09PT09PTUxODkwNjUzNzcyMjI4OTg0MDc9PQp"
}, - "optimizeImage": {
- "shouldOptimizeEcsAmi": "true",
- "performAt": "never",
- "timeWindows": [
- "['Sun:02:00-Sun:12:00', 'Wed:01:01-Fri:02:03']"
]
}
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": false,
- "cronExpression": "string",
- "taskType": "clusterRoll"
}
], - "shutdownHours": {
- "timeWindows": [
- "Sat:08:00-Sun:08:00"
], - "isEnabled": true
}
}, - "logging": {
- "export": {
- "s3": {
- "id": "di-123"
}
}
}, - "createdAt": "2019-06-03T08:13:08.000Z",
- "updatedAt": "2019-06-10T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs"
}
}Roll an entire Ocean cluster or roll subsets of the cluster by specifying launchSpecIds or instanceIds. Performing this request will start the roll immediately according to defined batches. Note that the first response for a successful request will indicate the start of a roll. In order to check the status of a roll, you can use the GET Roll API using the roll identifier.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object or object or object |
{- "roll": {
- "batchSizePercentage": 20,
- "comment": "This is why I rolled my cluster."
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "scr-1234abcd",
- "currentBatch": 1,
- "numOfBatches": 2,
- "progress": {
- "unit": "percentage",
- "value": 10,
- "detailedStatus": {
- "oldInstances": [
- {
- "instanceId": "i-003a0281a24c01a20",
- "status": "REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a21",
- "status": "TO_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a22",
- "status": "COULD_NOT_BE_REPLACED"
}
]
}
}, - "oceanId": "o-abcd1234",
- "createdAt": "2019-06-03T08:13:08.000Z",
- "updatedAt": "2019-06-10T15:06:13.000Z",
- "status": "IN_PROGRESS",
- "comment": "This is why I rolled my cluster.",
- "instanceIds": [
- "i-0003a99ffb566f039, i-0567a99ffb566f765"
]
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs:cluster:roll"
}
}List rolls of an Ocean cluster.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "scr-1234abcd",
- "currentBatch": 1,
- "numOfBatches": 2,
- "progress": {
- "unit": "percentage",
- "value": 10,
- "detailedStatus": {
- "oldInstances": [
- {
- "instanceId": "i-003a0281a24c01a20",
- "status": "REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a21",
- "status": "TO_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a22",
- "status": "COULD_NOT_BE_REPLACED"
}
]
}
}, - "oceanId": "o-abcd1234",
- "createdAt": "2019-06-03T08:13:08.000Z",
- "updatedAt": "2019-06-10T15:06:13.000Z",
- "status": "IN_PROGRESS",
- "comment": "This is why I rolled my cluster.",
- "instanceIds": [
- "i-0003a99ffb566f039, i-0567a99ffb566f765"
]
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs:cluster:roll"
}
}Update a roll of an Ocean cluster. Performing the request will stop the next batch in a roll.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| ROLL_ID required | string Example: scr-12345abc Ocean Cluster Roll identifier |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| status | string Value: "STOPPED" Sets the status of the roll. |
{- "status": "STOPPED"
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "scr-1234abcd",
- "currentBatch": 1,
- "numOfBatches": 2,
- "progress": {
- "unit": "percentage",
- "value": 10,
- "detailedStatus": {
- "oldInstances": [
- {
- "instanceId": "i-003a0281a24c01a20",
- "status": "REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a21",
- "status": "TO_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a22",
- "status": "COULD_NOT_BE_REPLACED"
}
]
}
}, - "oceanId": "o-abcd1234",
- "createdAt": "2019-06-03T08:13:08.000Z",
- "updatedAt": "2019-06-10T15:06:13.000Z",
- "status": "IN_PROGRESS",
- "comment": "This is why I rolled my cluster.",
- "instanceIds": [
- "i-0003a99ffb566f039, i-0567a99ffb566f765"
]
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs:cluster:roll"
}
}Get status for roll of an Ocean cluster.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| ROLL_ID required | string Example: scr-12345abc Ocean Cluster Roll identifier |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "scr-1234abcd",
- "currentBatch": 1,
- "numOfBatches": 2,
- "progress": {
- "unit": "percentage",
- "value": 10,
- "detailedStatus": {
- "oldInstances": [
- {
- "instanceId": "i-003a0281a24c01a20",
- "status": "REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a21",
- "status": "TO_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a22",
- "status": "COULD_NOT_BE_REPLACED"
}
]
}
}, - "oceanId": "o-abcd1234",
- "createdAt": "2019-06-03T08:13:08.000Z",
- "updatedAt": "2019-06-10T15:06:13.000Z",
- "status": "IN_PROGRESS",
- "comment": "This is why I rolled my cluster.",
- "instanceIds": [
- "i-0003a99ffb566f039, i-0567a99ffb566f765"
]
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs:cluster:roll"
}
}Get container instances data of an Ocean cluster.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| instanceId | string Example: instanceId=i-123 Get a specific container instance ec2 instance id. |
| launchSpecId | string Example: launchSpecId=ols-123abc Ocean cluster launch specification identifier. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/aws/ecs/cluster/o-12345abc/containerInstances",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "instanceId": "i-123",
- "instanceType": "c3.large",
- "availabilityZone": "us-west-2b",
- "launchSpecId": "ols-123",
- "launchSpecName": "dev-launchSpec",
- "lifeCycle": "Spot",
- "publicIp": "1.2.3.4",
- "workloadRequestedCpuUnit": 1320,
- "workloadRequestedMemoryInMiB": 500,
- "workloadRequestedGpu": 1,
- "headroomRequestedCpuUnit": 1320,
- "headroomRequestedMemoryInMiB": 512,
- "headroomRequestedGpu": 1,
- "registeredCpuUnit": 2000,
- "registeredMemoryInMiB": 3646.1,
- "registeredGpu": 1,
- "containerInstanceId": "abcdefg",
- "registrationStatus": "Registered",
- "createdAt": "2021-10-01T05:51:06.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs:containerInstances"
}
}Create a new Ocean ECS virtual node group in the specified account.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object |
{- "launchSpec": {
- "oceanId": "o-1234abcd",
- "name": "mySpecLauncher",
- "imageId": "img2",
- "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "securityGroupIds": [
- "sg1, sg3"
], - "instanceTypes": [
- "c3.2xlarge, c4.2xlarge"
], - "subnetIds": [
- "subnet-01234566789abcdef, subnet-9876543210ghijkl"
], - "iamInstanceProfile": [
- "arn:aws:iam::123456789123:instance-profile"
], - "attributes": [
- {
- "key": "key1",
- "value": "value1"
}
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1024,
- "memoryPerUnit": 512,
- "numOfUnits": 2
}
]
}, - "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "restrictScaleDown": false,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "launchSpec": {
- "id": "ols-1234abcd",
- "oceanId": "o-1234abcd",
- "name": "mySpecLauncher",
- "imageId": "img2",
- "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "securityGroupIds": [
- "sg1, sg3"
], - "instanceTypes": [
- "c3.2xlarge, c4.2xlarge"
], - "subnetIds": [
- "subnet-01234566789abcdef, subnet-9876543210ghijkl"
], - "iamInstanceProfile": [
- "arn:aws:iam::123456789123:instance-profile"
], - "attributes": [
- {
- "key": "key1",
- "value": "value1"
}
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1024,
- "memoryPerUnit": 512,
- "numOfUnits": 2
}
]
}, - "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "restrictScaleDown": false,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "createdAt": "2019-06-03T08:13:08.000Z",
- "updatedAt": "2019-06-10T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs"
}
}Get all the custom VNGs for all Ocean clusters in the specified account.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "launchSpec": {
- "id": "ols-1234abcd",
- "oceanId": "o-1234abcd",
- "name": "mySpecLauncher",
- "imageId": "img2",
- "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "securityGroupIds": [
- "sg1, sg3"
], - "instanceTypes": [
- "c3.2xlarge, c4.2xlarge"
], - "subnetIds": [
- "subnet-01234566789abcdef, subnet-9876543210ghijkl"
], - "iamInstanceProfile": [
- "arn:aws:iam::123456789123:instance-profile"
], - "attributes": [
- {
- "key": "key1",
- "value": "value1"
}
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1024,
- "memoryPerUnit": 512,
- "numOfUnits": 2
}
]
}, - "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "restrictScaleDown": false,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "createdAt": "2019-06-03T08:13:08.000Z",
- "updatedAt": "2019-06-10T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs"
}
}Get a specific custom launch configuration for an Ocean cluster in the specified account.
| oceanLaunchSpecId required | string Ocean cluster launch specification identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "launchSpec": {
- "id": "ols-1234abcd",
- "oceanId": "o-1234abcd",
- "name": "mySpecLauncher",
- "imageId": "img2",
- "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "securityGroupIds": [
- "sg1, sg3"
], - "instanceTypes": [
- "c3.2xlarge, c4.2xlarge"
], - "subnetIds": [
- "subnet-01234566789abcdef, subnet-9876543210ghijkl"
], - "iamInstanceProfile": [
- "arn:aws:iam::123456789123:instance-profile"
], - "attributes": [
- {
- "key": "key1",
- "value": "value1"
}
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1024,
- "memoryPerUnit": 512,
- "numOfUnits": 2
}
]
}, - "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "restrictScaleDown": false,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "createdAt": "2019-06-03T08:13:08.000Z",
- "updatedAt": "2019-06-10T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs"
}
}Delete a specified virtual node group in an Ocean cluster.
| oceanLaunchSpecId required | string Ocean cluster launch specification identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| deleteContainerInstances | boolean Default: false Example: deleteContainerInstances=true When set to "true", all instances belonging to the deleted VNG will be drained, detached, and terminated. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "launchSpec": {
- "id": "ols-1234abcd",
- "oceanId": "o-1234abcd",
- "name": "mySpecLauncher",
- "imageId": "img2",
- "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "securityGroupIds": [
- "sg1, sg3"
], - "instanceTypes": [
- "c3.2xlarge, c4.2xlarge"
], - "subnetIds": [
- "subnet-01234566789abcdef, subnet-9876543210ghijkl"
], - "iamInstanceProfile": [
- "arn:aws:iam::123456789123:instance-profile"
], - "attributes": [
- {
- "key": "key1",
- "value": "value1"
}
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1024,
- "memoryPerUnit": 512,
- "numOfUnits": 2
}
]
}, - "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "restrictScaleDown": false,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "createdAt": "2019-06-03T08:13:08.000Z",
- "updatedAt": "2019-06-10T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs"
}
}Get a specific custom launch configuration for an Ocean cluster in the specified account.
| oceanLaunchSpecId required | string Ocean cluster launch specification identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| autoApplyTags | boolean Default: false Example: autoApplyTags=true Optionally update resource tags on the fly without performing a roll. |
required | object |
{- "launchSpec": {
- "oceanId": "o-1234abcd",
- "name": "mySpecLauncher",
- "imageId": "img2",
- "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "securityGroupIds": [
- "sg1, sg3"
], - "instanceTypes": [
- "c3.2xlarge, c4.2xlarge"
], - "subnetIds": [
- "subnet-01234566789abcdef, subnet-9876543210ghijkl"
], - "iamInstanceProfile": [
- "arn:aws:iam::123456789123:instance-profile"
], - "attributes": [
- {
- "key": "key1",
- "value": "value1"
}
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1024,
- "memoryPerUnit": 512,
- "numOfUnits": 2
}
]
}, - "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "restrictScaleDown": false,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "launchSpec": {
- "id": "ols-1234abcd",
- "oceanId": "o-1234abcd",
- "name": "mySpecLauncher",
- "imageId": "img2",
- "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "securityGroupIds": [
- "sg1, sg3"
], - "instanceTypes": [
- "c3.2xlarge, c4.2xlarge"
], - "subnetIds": [
- "subnet-01234566789abcdef, subnet-9876543210ghijkl"
], - "iamInstanceProfile": [
- "arn:aws:iam::123456789123:instance-profile"
], - "attributes": [
- {
- "key": "key1",
- "value": "value1"
}
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1024,
- "memoryPerUnit": 512,
- "numOfUnits": 2
}
]
}, - "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": 125,
- "deleteOnTermination": false,
- "encrypted": false,
- "iops": 1,
- "kmsKeyId": "alias/aws/ebs",
- "snapshotId": "snap-abcdefghi111110",
- "volumeType": "gp2",
- "volumeSize": 0,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "restrictScaleDown": false,
- "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "createdAt": "2019-06-03T08:13:08.000Z",
- "updatedAt": "2019-06-10T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs"
}
}Import a Fargate service into an existing Ocean ECS cluster. Upon Fargate service import, Spot clones the selected Fargate services and runs them with the same VPC & Subnet settings on EC2 spot Instances. Ocean will automatically and seamlessly predict and replace spot instances before they are interrupted, ensuring the uptime of the cluster and providing cost-savings of up to 90% over Fargate-enabled ECS clusters.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| services | Array of strings List of Fargate services by their names. Must contain at least one service. |
| simpleNewServiceNames | boolean Default: false Flag to align imported service names in the following format: sfm_ |
{- "services": [
- "service_1",
- "service_2"
], - "simpleNewServiceNames": false
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "efm-d235b4d8",
- "oceanId": "o-fgdfgdf",
- "state": "STARTING",
- "config": {
- "services": [
- "service_1",
- "service_2"
]
}, - "simpleNewServiceNames": false
}
], - "count": 1,
- "kind": "string"
}
}Get existing Fargate services in the ECS cluster.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "ecsClusterName": "EcsTestCluster",
- "ecsClusterRegion": "us-east-2",
- "serviceNames": [
- [
- "test_with_1",
- "test_without"
]
]
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs:fargateMigration:serviceDiscovery"
}
}Get the status of a Fargate service import.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "ecsClusterName": "EcsTestCluster",
- "ecsClusterRegion": "us-east-2",
- "state": "FINISHED",
- "importedServices": [
- "test_with_1"
]
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs:fargateMigration:status"
}
}This API copies the configuration from a Fargate service into the corresponding fields of an Ocean object. (This process is commonly referred to as importing.) The API returns an Ocean object that is suitable for use in the Create API to create a new Ocean cluster based on your Fargate configuration. If you are migrating a Fargate service that has tags, you must run the Opt In procedure on your Amazon account or IAM role. This is required in order to obtain the necessary Amazon Resource Name (ARN) and resource identifier format for your ECS tasks, container instances, and services. For more information about the required ARN and the Opt In procedure, see the following pages:
The API requires one of the following permissions to be defined in Spot -
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| ecsClusterName required | string Name of the cluster in ECS. |
| keyPair | string Specify a key pair to attach to the services. |
| oceanClusterName required | string Name of the cluster in new Ocean object. |
| region required | string Name of the AWS region the ECS cluster is in. |
| services required | Array of Array of strings Name of the ECS Fargate service to be imported. |
Array of objects Set tags for the service. Items should be unique. |
{- "oceanClusterName": "fargate-import-ocean",
- "ecsClusterName": "fargateTestCluster",
- "region": "us-west-1",
- "services": [
- [
- "service_2"
]
], - "keyPair": "spot-prod",
- "tags": [
- {
- "tagKey": "env",
- "tagValue": "prod"
}
]
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "cluster": {
- "name": "Ocean::my-elastigroup-name",
- "clusterName": "my-ECS-cluster-name",
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 300,
- "attributes": {
- "key": "the_key",
- "value": "the_value"
}, - "resourceLimits": {
- "maxMemoryGib": 1,
- "maxVcpu": 1
}, - "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": 20,
- "shouldScaleDownNonServiceTasks": true,
- "enableAutomaticAndManualHeadroom": false
}, - "region": "us-east-1",
- "capacity": {
- "minimum": 1,
- "maximum": 10,
- "target": 5,
- "unit": "instance"
}, - "strategy": {
- "utilizeReservedInstances": true,
- "fallbackToOd": true,
- "spotPercentage": 100,
- "drainingTimeout": 200
}, - "compute": {
- "subnetIds": [
- "subnet-1234abcd"
], - "launchSpecification": {
- "imageId": "ami-123456789abcdefgh",
- "securityGroupIds": [
- "sg-abcdefgh123456789"
], - "iamInstanceProfile": {
- "arn": "my-arn"
}, - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvda",
- "ebs": {
- "throughput": null,
- "deleteOnTermination": null,
- "encrypted": null,
- "iops": null,
- "kmsKeyId": null,
- "snapshotId": null,
- "volumeType": null,
- "volumeSize": null,
- "dynamicVolumeSize": { }
}
}
], - "instanceMetadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": 12
}, - "userData": "Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT01MTg5MDY1Mzc3MjIyODk4NDA3PT0iCk1JTUUtVmVyc2lvbjogMS4wCgotLT09PT09PT09PT09PT09PTUxODkwNjUzNzcyMjI4OTg0MDc9PQp"
}, - "optimizeImage": {
- "shouldOptimizeEcsAmi": "true",
- "performAt": "never",
- "timeWindows": [
- "['Sun:02:00-Sun:12:00', 'Wed:01:01-Fri:02:03']"
]
}
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": false,
- "cronExpression": "string",
- "taskType": "clusterRoll"
}
], - "shutdownHours": {
- "timeWindows": [
- "Sat:08:00-Sun:08:00"
], - "isEnabled": true
}
}
}
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs"
}
}Launch container instances in virtual node group.
| oceanLaunchSpecId required | string Ocean cluster launch specification identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object (Ocean ECS VNG Launch Request) |
{- "launchRequest": {
- "amount": 5
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/aws/ecs/launchSpec/ols-12345abc/launchContainerInstances",
- "method": "PUT",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "newInstances": [
- {
- "instanceId": "i-08d53d2a1dcede08f",
- "availabilityZone": "us-west-2b",
- "instanceType": "c3.xlarge",
- "lifeCycle": "spot"
}
]
}
], - "count": 1,
- "kind": "spotinst:ocean:aws:ecs:launchSpec:launchContainerInstances",
- "launchSpecId": "ols-f73821bc"
}
}Get the heartbeat status of the Ocean Controller for the cluster.
The response returns the heartbeat status and the last heartbeat timestamp.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/k8s/cluster/o-e0a2bd7c/controllerHeartbeat",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "status": "ACTIVE",
- "lastHeartbeat": "2019-11-24T14:33:00.746Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:k8s:cluster:controllerHeartbeat"
}
}Describes Kubernetes cluster costs in a time range based on resource allocation.
The response will provide the distribution of the costs per cluster, namespace, and deployment.
For each entity, the response will contain a breakdown to compute and EBS costs as well.
In addition, the response will show labels or annotations for each namespace or deployment so you can filter costs by labels or annotations.
| clusterIdentifier required | string Example: ocean.k8s The reporting identifier of the Ocean Controller as set in the cluster configuration under the "controllerClusterId" field. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| aggregationPeriod | string The time segment over which data is calculated and displayed. The period may be "daily" or null. If you use "daily" the costs will be broken into parts, e.g., the cost per each day in the period. Otherwise, there will be only one cost per resource for the whole period. |
| fromDate required | string Beginning date value using either the date format "yyyy-mm-dd; 2016-11-20" or ms "1494751821472". |
| toDate required | string End date value using either the date format "yyyy-mm-dd; 2016-11-20" or ms "1494751821472". |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/mcs/kubernetes/cluster/my-cluster-identifier/costs",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "totalCost": 279.9907,
- "totalComputeCost": 279.9907,
- "totalEbsCost": 0,
- "totalStorageCost": 0,
- "namespaces": {
- "namespace": "default",
- "cost": 18.00862,
- "computeCost": 18.00862,
- "ebsCost": 0,
- "storageCost": 0,
- "labels": {
- "region": "west",
- "env": "prod"
}, - "annotations": {
- "region": "west",
- "env": "prod"
}, - "deployments": {
- "name": "cpu-deployment-check5",
- "namespace": "default",
- "cost": 3.7410312,
- "computeCost": 3.7410312,
- "ebsCost": 0,
- "storageCost": 0,
- "labels": {
- "region": "west",
- "env": "prod"
}, - "annotations": {
- "region": "west",
- "env": "prod"
}
}, - "statefulSets": {
- "name": "cpu-deployment-check5",
- "namespace": "default",
- "cost": 3.7410312,
- "computeCost": 3.7410312,
- "ebsCost": 0,
- "storageCost": 0,
- "labels": {
- "region": "west",
- "env": "prod"
}, - "annotations": {
- "region": "west",
- "env": "prod"
}
}, - "daemonSets": {
- "name": "cpu-deployment-check5",
- "namespace": "default",
- "cost": 3.7410312,
- "computeCost": 3.7410312,
- "ebsCost": 0,
- "storageCost": 0,
- "labels": {
- "region": "west",
- "env": "prod"
}, - "annotations": {
- "region": "west",
- "env": "prod"
}
}, - "jobs": {
- "name": "cpu-deployment-check5",
- "namespace": "default",
- "cost": 3.7410312,
- "computeCost": 3.7410312,
- "ebsCost": 0,
- "storageCost": 0,
- "labels": {
- "region": "west",
- "env": "prod"
}, - "annotations": {
- "region": "west",
- "env": "prod"
}
}, - "standAlonePodsCost": 0
}, - "deployments": {
- "name": "cpu-deployment-check5",
- "namespace": "default",
- "cost": 3.7410312,
- "computeCost": 3.7410312,
- "ebsCost": 0,
- "storageCost": 0,
- "labels": {
- "region": "west",
- "env": "prod"
}, - "annotations": {
- "region": "west",
- "env": "prod"
}
}, - "headroomCost": 0,
- "idleCost": 216.10321
}
], - "count": 1,
- "kind": "string"
}
}The Ocean Controller is used to monitor the cluster resources and report back to Ocean.| To install the Ocean Controller, complete and run the following script on a machine with the kubectl command line tool installed and configured:
#!/usr/bin/env bash
curl -fsSL http://spotinst-public.s3.amazonaws.com/integrations/kubernetes/cluster-controller/scripts/init.sh | \
SPOTINST_TOKEN=<ENTER YOUR TOKEN HERE> \
SPOTINST_ACCOUNT=<ENTER YOUR SPOTINST ACCOUNT ID HERE> \
SPOTINST_CLUSTER_IDENTIFIER=<ENTER YOUR CLUSTER IDENTIFIER HERE> \
bashYou may need Kubernetes admin privileges for this script to work. To grant yourself admin privileges, run the following command:
kubectl create clusterrolebinding <clusterName> --clusterrole=cluster-admin --user=<userEmail>For more information, refer to our controller installation guides. You can install with Helm, Kubectl or Terraform. For more about Ocean and the Ocean Controller, see the documentation here.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object The specification of the Ocean cluster. |
{- "cluster": {
- "name": "test",
- "controllerClusterId": "test-123124",
- "gke": {
- "clusterName": "test-cluster",
- "masterLocation": "us-central1-a"
}, - "autoScaler": {
- "isEnabled": true,
- "cooldown": 30,
- "resourceLimits": {
- "maxMemoryGib": 1500,
- "maxVcpu": 750
}, - "down": {
- "maxScaleDownPercentage": 30
}, - "headRoom": {
- "cpuPerUnit": 0,
- "memoryPerUnit": 0,
- "gpuPerUnit": 0,
- "numOfUnit": 0
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": null,
- "enableAutomaticAndManualHeadroom": true
}, - "capacity": {
- "minimum": 0,
- "maximum": 3,
- "target": 3
}, - "strategy": {
- "drainingTimeout": 60
}, - "scheduling": {
- "shutdownHours": {
- "isEnabled": true,
- "timeWindows": [
- [
- "Fri:15:30-Wed:14:30",
- "Wed:15:30-Thu:18:30"
]
]
}, - "tasks": [
- {
- "isEnabled": true,
- "cronExpression": "0 1 * * *",
- "taskType": "clusterRoll",
- "batchSizePercentage": 20
}
]
}, - "security": {
- "containerImage": {
- "approvedImages": [
- [
- "gce.io/*",
- "docker.*"
]
]
}
}, - "compute": {
- "networkInterfaces": {
- "network": "default",
- "projectId": "test-project",
- "accessConfigs": {
- "name": "external-nat",
- "type": "ONE_TO_ONE_NAT"
}, - "aliasIpRanges": {
- "ipCidrRange": "/24",
- "subnetworkRangeName": "gke-test-native-vpc-pods-5cb557f7"
}
}, - "backendServices": {
- "backendServiceName": "test-global-tcp",
- "locationType": "global"
}, - "subnetName": "default",
- "availabilityZones": [
- "us-west1-a"
], - "instanceTypes": {
- "whitelist": [
- [
- "n1-standard-2"
]
]
}, - "launchSpecification": {
- "metadata": {
- "key": "example_key1",
- "value": "exmample_value1"
}, - "tags": [
- [
- "gke-test-native-vpc-5cb557f7-node"
]
], - "ipForwarding": true,
- "minCpuPlatform": "Intel Sandy Bridge",
- "serviceAccount": "265168459660-compute@developer.gserviceaccount.com",
- "labels": [
- {
- "key": "spotinst-gke-original-node-pool",
- "value": "test-native-vpc__default-pool"
}
], - "rootVolumeSizeInGb": 100,
- "shieldedInstanceConfig": {
- "enableSecureBoot": true,
- "enableIntegrityMonitoring": true
}
}
}
}
}{- "autoScaler": {
- "isEnabled": true,
- "cooldown": 30,
- "resourceLimits": {
- "maxMemoryGib": 1500,
- "maxVcpu": 750
}, - "down": {
- "maxScaleDownPercentage": 30
}, - "headRoom": {
- "cpuPerUnit": 0,
- "memoryPerUnit": 0,
- "gpuPerUnit": 0,
- "numOfUnit": 0
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": null,
- "enableAutomaticAndManualHeadroom": true
}, - "capacity": {
- "minimum": 0,
- "maximum": 3,
- "target": 3
}, - "strategy": {
- "drainingTimeout": 60
}, - "scheduling": {
- "shutdownHours": {
- "isEnabled": true,
- "timeWindows": [
- [
- "Fri:15:30-Wed:14:30",
- "Wed:15:30-Thu:18:30"
]
]
}, - "tasks": [
- {
- "isEnabled": true,
- "cronExpression": "0 1 * * *",
- "taskType": "clusterRoll",
- "batchSizePercentage": 20
}
]
}, - "security": {
- "containerImage": {
- "approvedImages": [
- [
- "gce.io/*",
- "docker.*"
]
]
}
}
}List the configurations for all Ocean clusters in the specified account.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 30,
- "resourceLimits": {
- "maxMemoryGib": 1500,
- "maxVcpu": 750
}, - "down": {
- "maxScaleDownPercentage": 30
}, - "headRoom": {
- "cpuPerUnit": 0,
- "memoryPerUnit": 0,
- "gpuPerUnit": 0,
- "numOfUnit": 0
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": null,
- "enableAutomaticAndManualHeadroom": true
}, - "capacity": {
- "minimum": 0,
- "maximum": 3,
- "target": 3
}, - "compute": {
- "networkInterfaces": {
- "network": "default",
- "projectId": "test-project",
- "accessConfigs": {
- "name": "external-nat",
- "type": "ONE_TO_ONE_NAT"
}, - "aliasIpRanges": {
- "ipCidrRange": "/24",
- "subnetworkRangeName": "gke-test-native-vpc-pods-5cb557f7"
}
}, - "backendServices": {
- "backendServiceName": "test-global-tcp",
- "locationType": "global"
}, - "subnetName": "default",
- "availabilityZones": [
- "us-west1-a"
], - "instanceTypes": {
- "whitelist": [
- [
- "n1-standard-2"
]
]
}, - "launchSpecification": {
- "metadata": {
- "key": "example_key1",
- "value": "exmample_value1"
}, - "tags": [
- [
- "gke-test-native-vpc-5cb557f7-node"
]
], - "ipForwarding": true,
- "minCpuPlatform": "Intel Sandy Bridge",
- "serviceAccount": "265168459660-compute@developer.gserviceaccount.com",
- "labels": [
- {
- "key": "spotinst-gke-original-node-pool",
- "value": "test-native-vpc__default-pool"
}
], - "rootVolumeSizeInGb": 100,
- "shieldedInstanceConfig": {
- "enableSecureBoot": true,
- "enableIntegrityMonitoring": true
}
}
}, - "createdAt": "2018-11-05T12:55:50.000+0000",
- "updatedAt": "2018-11-05T12:58:15.000+0000"
}
], - "count": 1,
- "kind": "string"
}
}Delete a specified Ocean cluster.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Get the configuration for a specified Ocean cluster.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "autoScaler": {
- "isEnabled": true,
- "cooldown": 30,
- "resourceLimits": {
- "maxMemoryGib": 1500,
- "maxVcpu": 750
}, - "down": {
- "maxScaleDownPercentage": 30
}, - "headRoom": {
- "cpuPerUnit": 0,
- "memoryPerUnit": 0,
- "gpuPerUnit": 0,
- "numOfUnit": 0
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": null,
- "enableAutomaticAndManualHeadroom": true
}, - "capacity": {
- "minimum": 0,
- "maximum": 3,
- "target": 3
}, - "compute": {
- "networkInterfaces": {
- "network": "default",
- "projectId": "test-project",
- "accessConfigs": {
- "name": "external-nat",
- "type": "ONE_TO_ONE_NAT"
}, - "aliasIpRanges": {
- "ipCidrRange": "/24",
- "subnetworkRangeName": "gke-test-native-vpc-pods-5cb557f7"
}
}, - "backendServices": {
- "backendServiceName": "test-global-tcp",
- "locationType": "global"
}, - "subnetName": "default",
- "availabilityZones": [
- "us-west1-a"
], - "instanceTypes": {
- "whitelist": [
- [
- "n1-standard-2"
]
]
}, - "launchSpecification": {
- "metadata": {
- "key": "example_key1",
- "value": "exmample_value1"
}, - "tags": [
- [
- "gke-test-native-vpc-5cb557f7-node"
]
], - "ipForwarding": true,
- "minCpuPlatform": "Intel Sandy Bridge",
- "serviceAccount": "265168459660-compute@developer.gserviceaccount.com",
- "labels": [
- {
- "key": "spotinst-gke-original-node-pool",
- "value": "test-native-vpc__default-pool"
}
], - "rootVolumeSizeInGb": 100,
- "shieldedInstanceConfig": {
- "enableSecureBoot": true,
- "enableIntegrityMonitoring": true
}
}
}, - "createdAt": "2018-11-05T12:55:50.000+0000",
- "updatedAt": "2018-11-05T12:58:15.000+0000"
}
], - "count": 1,
- "kind": "string"
}
}All Ocean parameters are updatable, excluding the Name and controllerClusterId.
This API supports partial updates, so specific fields can be updated separately.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object The specification of the Ocean cluster. |
{- "cluster": {
- "name": "test",
- "controllerClusterId": "test-123124",
- "gke": {
- "clusterName": "test-cluster",
- "masterLocation": "us-central1-a"
}, - "autoScaler": {
- "isEnabled": true,
- "cooldown": 30,
- "resourceLimits": {
- "maxMemoryGib": 1500,
- "maxVcpu": 750
}, - "down": {
- "maxScaleDownPercentage": 30
}, - "headRoom": {
- "cpuPerUnit": 0,
- "memoryPerUnit": 0,
- "gpuPerUnit": 0,
- "numOfUnit": 0
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": null,
- "enableAutomaticAndManualHeadroom": true
}, - "capacity": {
- "minimum": 0,
- "maximum": 3,
- "target": 3
}, - "strategy": {
- "drainingTimeout": 60
}, - "scheduling": {
- "shutdownHours": {
- "isEnabled": true,
- "timeWindows": [
- [
- "Fri:15:30-Wed:14:30",
- "Wed:15:30-Thu:18:30"
]
]
}, - "tasks": [
- {
- "isEnabled": true,
- "cronExpression": "0 1 * * *",
- "taskType": "clusterRoll",
- "batchSizePercentage": 20
}
]
}, - "security": {
- "containerImage": {
- "approvedImages": [
- [
- "gce.io/*",
- "docker.*"
]
]
}
}, - "compute": {
- "networkInterfaces": {
- "network": "default",
- "projectId": "test-project",
- "accessConfigs": {
- "name": "external-nat",
- "type": "ONE_TO_ONE_NAT"
}, - "aliasIpRanges": {
- "ipCidrRange": "/24",
- "subnetworkRangeName": "gke-test-native-vpc-pods-5cb557f7"
}
}, - "backendServices": {
- "backendServiceName": "test-global-tcp",
- "locationType": "global"
}, - "subnetName": "default",
- "availabilityZones": [
- "us-west1-a"
], - "instanceTypes": {
- "whitelist": [
- [
- "n1-standard-2"
]
]
}, - "launchSpecification": {
- "metadata": {
- "key": "example_key1",
- "value": "exmample_value1"
}, - "tags": [
- [
- "gke-test-native-vpc-5cb557f7-node"
]
], - "ipForwarding": true,
- "minCpuPlatform": "Intel Sandy Bridge",
- "serviceAccount": "265168459660-compute@developer.gserviceaccount.com",
- "labels": [
- {
- "key": "spotinst-gke-original-node-pool",
- "value": "test-native-vpc__default-pool"
}
], - "rootVolumeSizeInGb": 100,
- "shieldedInstanceConfig": {
- "enableSecureBoot": true,
- "enableIntegrityMonitoring": true
}
}
}
}
}{- "autoScaler": {
- "isEnabled": true,
- "cooldown": 30,
- "resourceLimits": {
- "maxMemoryGib": 1500,
- "maxVcpu": 750
}, - "down": {
- "maxScaleDownPercentage": 30
}, - "headRoom": {
- "cpuPerUnit": 0,
- "memoryPerUnit": 0,
- "gpuPerUnit": 0,
- "numOfUnit": 0
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": null,
- "enableAutomaticAndManualHeadroom": true
}, - "capacity": {
- "minimum": 0,
- "maximum": 3,
- "target": 3
}, - "strategy": {
- "drainingTimeout": 60
}, - "scheduling": {
- "shutdownHours": {
- "isEnabled": true,
- "timeWindows": [
- [
- "Fri:15:30-Wed:14:30",
- "Wed:15:30-Thu:18:30"
]
]
}, - "tasks": [
- {
- "isEnabled": true,
- "cronExpression": "0 1 * * *",
- "taskType": "clusterRoll",
- "batchSizePercentage": 20
}
]
}, - "security": {
- "containerImage": {
- "approvedImages": [
- [
- "gce.io/*",
- "docker.*"
]
]
}
}, - "compute": {
- "networkInterfaces": {
- "network": "default",
- "projectId": "test-project",
- "accessConfigs": {
- "name": "external-nat",
- "type": "ONE_TO_ONE_NAT"
}, - "aliasIpRanges": {
- "ipCidrRange": "/24",
- "subnetworkRangeName": "gke-test-native-vpc-pods-5cb557f7"
}
}, - "backendServices": {
- "backendServiceName": "test-global-tcp",
- "locationType": "global"
}, - "subnetName": "default",
- "availabilityZones": [
- "us-west1-a"
], - "instanceTypes": {
- "whitelist": [
- [
- "n1-standard-2"
]
]
}, - "launchSpecification": {
- "metadata": {
- "key": "example_key1",
- "value": "exmample_value1"
}, - "tags": [
- [
- "gke-test-native-vpc-5cb557f7-node"
]
], - "ipForwarding": true,
- "minCpuPlatform": "Intel Sandy Bridge",
- "serviceAccount": "265168459660-compute@developer.gserviceaccount.com",
- "labels": [
- {
- "key": "spotinst-gke-original-node-pool",
- "value": "test-native-vpc__default-pool"
}
], - "rootVolumeSizeInGb": 100,
- "shieldedInstanceConfig": {
- "enableSecureBoot": true,
- "enableIntegrityMonitoring": true
}
}
}
}Get group’s Elastilog by
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| fromDate required | string Beginning date value using either the date format "yyyy-mm-dd; 2016-11-20" or ms "1494751821472". |
| LIMIT | integer <= 1000 Default: 500 Example: LIMIT=200 Maximum number of lines to extract in a response. |
| resourceId | string Example: resourceId=i-12345678 Filter extracted log entries for a specific resource identifier. Default: Null |
| SEVERITY | string Default: "ALL" Enum: "ALL" "INFO" "DEBUG" "WARN" Example: SEVERITY=INFO Severity of log entries to extract. |
| toDate required | string End date value using either the date format "yyyy-mm-dd; 2016-11-20" or ms "1494751821472". |
{- "request": {
- "id": "3213f42e-455e-4801-a185-cd3eb65fac5f",
- "url": "/ocean/gcp/k8s/cluster/o-e0a2bd7c/log?fromDate=2020-10-06&toDate=2020-10-08&severity=ALL&limit=500",
- "method": "GET",
- "timestamp": "2020-10-05T16:20:38.579Z"
}, - "response": {
- "status": {
- "code": "200",
- "message": "OK"
}, - "kind": "spotinst:ocean:cluster:log",
- "items": [
- {
- "message": "Ocean o-e0a2bd7c successfully created.",
- "severity": "INFO",
- "createdAt": "2020-10-07T09:51:12.000Z"
}
], - "count": "1"
}
}Get right-sizing recommendations for an Ocean cluster and filter them according to namespace or label.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| namespace | string For Kubernetes, namespace is an optional query parameter which filters the retrieved resources. |
object Optional - may be null. |
{- "filter": {
- "namespaces": [
- [
- "sparkSpace",
- "kube-system"
]
], - "attribute": {
- "type": "label",
- "key": "app",
- "operator": "Equals",
- "value": "redis"
}
}
}{- "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:ocean:aws:k8s:cluster:rightSizing:resourceSuggestion",
- "items": [
- {
- "resourceName": "dns-controller",
- "resourceType": "deployment",
- "namespace": "kube-system",
- "suggestedCPU": 1,
- "suggestedMemory": 19,
- "requestedCPU": 50,
- "requestedMemory": 50
}, - {
- "resourceName": "kube-dns",
- "resourceType": "daemonSet",
- "namespace": "kube-system",
- "suggestedCPU": 2,
- "suggestedMemory": 20,
- "requestedCPU": 10,
- "requestedMemory": 30
}
], - "count": 2
}
}Create a virtual node group.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object (GKE Cluster) |
{- "launchSpec": {
- "oceanId": "o-1fff54ed",
- "name": "lp_name",
- "serviceAccount": "265168459660-compute@developer.gserviceaccount.com",
- "rootVolumeSize": 8,
- "rootVolumeType": "pd-standard",
- "metadata": [
- {
- "key": "key1",
- "value": "value1"
}, - {
- "key": "key2",
- "value": "value2"
}
], - "instanceTypes": [
- "n1-standard-1, n1-standard-2"
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "gpuPerUnit": 0,
- "numOfUnits": 3
}
]
}, - "resourceLimits": {
- "maxInstanceCount": 5,
- "minInstanceCount": 2
}, - "restrictScaleDown": false,
- "shieldedInstanceConfig": {
- "enableSecureBoot": true,
- "enableIntegrityMonitoring": true
}, - "strategy": {
- "preemptiblePercentage": 80
}, - "storage": {
- "localSsdCount": 2
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "launchSpec": {
- "oceanId": "o-1fff54ed",
- "name": "lp_name",
- "serviceAccount": "265168459660-compute@developer.gserviceaccount.com",
- "rootVolumeSize": 8,
- "rootVolumeType": "pd-standard",
- "metadata": [
- {
- "key": "key1",
- "value": "value1"
}, - {
- "key": "key2",
- "value": "value2"
}
], - "instanceTypes": [
- "n1-standard-1, n1-standard-2"
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "gpuPerUnit": 0,
- "numOfUnits": 3
}
]
}, - "resourceLimits": {
- "maxInstanceCount": 5,
- "minInstanceCount": 2
}, - "restrictScaleDown": false,
- "shieldedInstanceConfig": {
- "enableSecureBoot": true,
- "enableIntegrityMonitoring": true
}, - "strategy": {
- "preemptiblePercentage": 80
}, - "storage": {
- "localSsdCount": 2
}
}, - "createdAt": "2018-11-05T12:55:50.000+0000",
- "updatedAt": "2018-11-05T12:58:15.000+0000"
}
], - "count": 1,
- "kind": "string"
}
}| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| oceanId required | string Example: oceanId=o-12345abc Identifier of the Ocean cluster. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "launchSpec": {
- "oceanId": "o-1fff54ed",
- "name": "lp_name",
- "serviceAccount": "265168459660-compute@developer.gserviceaccount.com",
- "rootVolumeSize": 8,
- "rootVolumeType": "pd-standard",
- "metadata": [
- {
- "key": "key1",
- "value": "value1"
}, - {
- "key": "key2",
- "value": "value2"
}
], - "instanceTypes": [
- "n1-standard-1, n1-standard-2"
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "gpuPerUnit": 0,
- "numOfUnits": 3
}
]
}, - "resourceLimits": {
- "maxInstanceCount": 5,
- "minInstanceCount": 2
}, - "restrictScaleDown": false,
- "shieldedInstanceConfig": {
- "enableSecureBoot": true,
- "enableIntegrityMonitoring": true
}, - "strategy": {
- "preemptiblePercentage": 80
}, - "storage": {
- "localSsdCount": 2
}
}, - "createdAt": "2018-11-05T12:55:50.000+0000",
- "updatedAt": "2018-11-05T12:58:15.000+0000"
}
], - "count": 1,
- "kind": "string"
}
}Delete a specified virtual node group in an Ocean cluster.
| oceanLaunchSpecId required | string Ocean cluster launch specification identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| deleteNodes | boolean Default: false Example: deleteNodes=true When set to "true", all instances belonging to the deleted launch specification will be drained, detached, and terminated. |
{- "request": {
- "id": "a608777a-a1c5-4f34-b30b-3f7355e3926b",
- "url": "/ocean/aws/k8s/cluster/o-12we32df?accountId=act-7461123d",
- "method": "DELETE",
- "timestamp": "2019-06-18T07:59:45.892Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}All Ocean parameters in a virtual node group are updatable.
| oceanLaunchSpecId required | string Ocean cluster launch specification identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object (GKE Cluster) |
{- "launchSpec": {
- "oceanId": "o-1fff54ed",
- "name": "lp_name",
- "rootVolumeSize": 8,
- "metadata": [
- {
- "key": "key1",
- "value": "value1"
}, - {
- "key": "key2",
- "value": "value2"
}
], - "instanceTypes": [
- "n1-standard-1, n1-standard-2"
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "autoScale": {
- "headroom": {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "gpuPerUnit": 0,
- "numOfUnits": 3
}
}, - "resourceLimits": {
- "maxInstanceCount": 5,
- "minInstanceCount": 2
}, - "restrictScaleDown": false,
- "shieldedInstanceConfig": {
- "enableSecureBoot": true,
- "enableIntegrityMonitoring": true
}, - "strategy": {
- "preemptiblePercentage": 80
}, - "storage": {
- "localSsdCount": 2
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "launchSpec": {
- "oceanId": "o-1fff54ed",
- "name": "lp_name",
- "serviceAccount": "265168459660-compute@developer.gserviceaccount.com",
- "rootVolumeSize": 8,
- "rootVolumeType": "pd-standard",
- "metadata": [
- {
- "key": "key1",
- "value": "value1"
}, - {
- "key": "key2",
- "value": "value2"
}
], - "instanceTypes": [
- "n1-standard-1, n1-standard-2"
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "gpuPerUnit": 0,
- "numOfUnits": 3
}
]
}, - "resourceLimits": {
- "maxInstanceCount": 5,
- "minInstanceCount": 2
}, - "restrictScaleDown": false,
- "shieldedInstanceConfig": {
- "enableSecureBoot": true,
- "enableIntegrityMonitoring": true
}, - "strategy": {
- "preemptiblePercentage": 80
}, - "storage": {
- "localSsdCount": 2
}
}, - "createdAt": "2018-11-05T12:55:50.000+0000",
- "updatedAt": "2018-11-05T12:58:15.000+0000"
}
], - "count": 1,
- "kind": "string"
}
}| oceanLaunchSpecId required | string Ocean cluster launch specification identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "launchSpec": {
- "oceanId": "o-1fff54ed",
- "name": "lp_name",
- "serviceAccount": "265168459660-compute@developer.gserviceaccount.com",
- "rootVolumeSize": 8,
- "rootVolumeType": "pd-standard",
- "metadata": [
- {
- "key": "key1",
- "value": "value1"
}, - {
- "key": "key2",
- "value": "value2"
}
], - "instanceTypes": [
- "n1-standard-1, n1-standard-2"
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "gpuPerUnit": 0,
- "numOfUnits": 3
}
]
}, - "resourceLimits": {
- "maxInstanceCount": 5,
- "minInstanceCount": 2
}, - "restrictScaleDown": false,
- "shieldedInstanceConfig": {
- "enableSecureBoot": true,
- "enableIntegrityMonitoring": true
}, - "strategy": {
- "preemptiblePercentage": 80
}, - "storage": {
- "localSsdCount": 2
}
}, - "createdAt": "2018-11-05T12:55:50.000+0000",
- "updatedAt": "2018-11-05T12:58:15.000+0000"
}
], - "count": 1,
- "kind": "string"
}
}Roll an entire Ocean cluster or roll subsets of the cluster by specifying launchSpecIds or instanceNames. Performing this request will start the roll immediately, and the roll will take place according to defined batches.
Note that the first response for a successful request will notify about the start of a roll. In order to check the status of a roll, you can use the GET Cluster Roll API using the roll identifier.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object Settings for roll operation |
{- "roll": {
- "batchSizePercentage": 20,
- "comment": "This is why I deployed my cluster.",
- "launchSpecIds": [
- [
- "ols-76694a7d",
- "ols-56694a76"
]
], - "instanceNames": [
- [
- "i-0003a99ffb566f039",
- "i-0567a99ffb566f765"
]
]
}
}{- "rollId": "roll-1234",
- "oceanId": "o-12e31234",
- "status": "IN_PROGRESS",
- "batchNumber": 1,
- "numOfBatches": 5,
- "comment": "This is why I deployed my cluster.",
- "progress": {
- "unit": "percentage",
- "value": 0
}, - "instanceNames": [
- "sin-0a4becc0-sig-6952238d",
- "sin-0542ecc0-sig-695223r4"
], - "launchSpecIds": [
- "ols-76694a7d",
- "ols-56694a76"
], - "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}Get status for all rolls of an Ocean cluster.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:ocean:aws:k8s:cluster:roll",
- "items": [
- {
- "id": "scr-5aaf854e",
- "status": "IN_PROGRESS",
- "currentBatch": 2,
- "numOfBatches": 2,
- "comment": "This is why I deployed my cluster.",
- "progress": {
- "unit": "percentage",
- "value": 0
}, - "oceanId": "o-30681b13",
- "launchSpecIds": [
- [
- "ols-76694a7d",
- "ols-56694a76"
]
], - "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}
]
}Update a roll of an Ocean cluster.
Performing the request will stop the next batch in a roll.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| ROLL_ID required | string Example: scr-12345abc Ocean Cluster Roll identifier |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| status | string Set status of the roll. Valid values: "STOPPED" |
{- "status": "STOPPED"
}{- "rollId": "roll-1234",
- "status": "STOPPED",
- "batchNumber": 1,
- "numOfBatches": 5,
- "progress": {
- "unit": "percentage",
- "value": 0
}, - "oceanId": "o-12e31234",
- "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}Get status for roll of an Ocean cluster.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| ROLL_ID required | string Example: scr-12345abc Ocean Cluster Roll identifier |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "rollId": "roll-1234",
- "oceanId": "o-12e31234",
- "status": "IN_PROGRESS",
- "batchNumber": 1,
- "numOfBatches": 5,
- "comment": "This is why I deployed my cluster.",
- "progress": {
- "unit": "percentage",
- "value": 0
}, - "instanceNames": [
- "sin-0a4becc0-sig-6952238d",
- "sin-0542ecc0-sig-695223r4"
], - "launchSpecIds": [
- "ols-76694a7d",
- "ols-56694a76"
], - "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}Get nodes data of an Ocean cluster.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| instanceName | string Example: instanceName=sin-123 Get a specific node by instance name. |
| launchSpecId | string Example: launchSpecId=ols-123abc Ocean cluster launch specification identifier. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/gcp/k8s/cluster/o-12345abc/nodes",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "instanceName": "sin-123",
- "instanceType": "n1-standard-2",
- "availabilityZone": "us-central1-b",
- "launchSpecId": "ols-123",
- "launchSpecName": "dev-launchSpec",
- "lifeCycle": "Preemtible",
- "publicIp": "1.2.3.4",
- "workloadRequestedMilliCpu": 1320,
- "workloadRequestedMemoryInMiB": 500,
- "workloadRequestedGpu": 1,
- "headroomRequestedMilliCpu": 1320,
- "headroomRequestedMemoryInMiB": 512,
- "headroomRequestedGpu": 1,
- "allocatableMilliCpu": 2000,
- "allocatableMemoryInMiB": 3646.1,
- "allocatableGpu": 1,
- "nodeName": "node-1",
- "registrationStatus": "Registered",
- "createdAt": "2021-10-01T05:51:06.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:gcp:k8s:nodes"
}
}Prerequisites | Perform the following validations prior to upgrade executions: | * Group identifier cannot be null. * Group identifier exists in Elastigroup. * Group should be a GKE Elastigroup with defined scaling policy. * Group identifier is already managed by Ocean.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| groupId required | string Elastigroup identifier |
{- "request": {
- "id": "e1aba6b3-d1be-419f-b19a-9542e09716a5",
- "url": "/ocean/gcp/k8s/cluster/import?groupId=o-210e0c0b?accountId=act-7461862f",
- "method": "GET",
- "timestamp": "2019-03-05T15:43:16.306Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:ocean:gcp:k8s",
- "items": {
- "id": "o-9aa80ccb",
- "name": "ocean test",
- "controllerClusterId": "Test-5837c8ad1",
- "gke": {
- "clusterName": "test-native-vpc",
- "masterLocation": "us-central1-a"
}, - "capacity": {
- "minimum": 0,
- "maximum": 3,
- "target": 3
}, - "compute": {
- "networkInterfaces": {
- "network": "default",
- "accessConfigs": {
- "name": "external-nat",
- "type": "ONE_TO_ONE_NAT"
}, - "aliasIpRanges": {
- "ipCidrRange": "/24",
- "subnetworkRangeName": "gke-test-native-vpc-pods-5cb557f7"
}
}, - "subnetName": "default",
- "instanceTypes": {
- "whitelist": [
- "n1-standard-2"
]
}, - "launchSpecification": {
- "metadata": {
- "key": "example_key1",
- "value": "exmample_value1"
}, - "tags": [
- "gke-test-native-vpc-5cb557f7-node"
], - "ipForwarding": true,
- "serviceAccount": "265168459660-compute@developer.gserviceaccount.com",
- "labels": [
- {
- "key": "spotinst-gke-original-node-pool",
- "value": "test-native-vpc__default-pool"
}
], - "rootVolumeSizeInGb": 100
}, - "availabilityZones": [
- [
- "us-central1-a"
]
]
}, - "createdAt": "2018-11-05T12:55:50.000+0000",
- "updatedAt": "2018-11-05T12:58:15.000+0000"
}, - "count": 1
}
}Launch nodes in virtual node group.
| oceanLaunchSpecId required | string Ocean cluster launch specification identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object (Ocean GKE Virtual Node Group Launch Request) |
{- "launchRequest": {
- "amount": 5
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/gcp/k8s/launchSpec/ols-12345abc/launchNodes",
- "method": "PUT",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "newInstances": [
- {
- "instanceName": "sin-00b61aa5dde4-oesg-97499562",
- "availabilityZone": "us-west-2b",
- "instanceType": "c3.xlarge",
- "lifeCycle": "Preemptible"
}
]
}
], - "count": 1,
- "kind": "spotinst:ocean:gcp:k8s:launchSpec:launchNodes",
- "launchSpecId": "ols-f73821bc"
}
}Get the heartbeat status of the Ocean Controller for the cluster.
The response returns the heartbeat status and the last heartbeat timestamp.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/k8s/cluster/o-e0a2bd7c/controllerHeartbeat",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "status": "ACTIVE",
- "lastHeartbeat": "2019-11-24T14:33:00.746Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:k8s:cluster:controllerHeartbeat"
}
}Creates an Ocean entity according to a given specification.
Prerequisite:
Kubenet-based AKS clusters only: The permissions needed in the Azure managed service identity (MSI) for Ocean to use when provisioning new nodes should be adjusted. Run the displayed script on a workstation with an Owner permissions token for the Azure environment. Learn more.
Notes:
#!/usr/bin/env bash
curl -fsSL http://spotinst-public.s3.amazonaws.com/integrations/kubernetes/cluster-controller/scripts/init.sh | \
SPOTINST_TOKEN=<ENTER YOUR TOKEN HERE> \
SPOTINST_ACCOUNT=<ENTER YOUR SPOTINST ACCOUNT ID HERE> \
SPOTINST_CLUSTER_IDENTIFIER=<ENTER YOUR CLUSTER IDENTIFIER HERE> \
bash| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object (ocean-cluster) The Ocean cluster. |
{- "cluster": {
- "name": "test",
- "controllerClusterId": "test-123124",
- "aks": {
- "name": "test-cluster",
- "resourceGroupName": "TestResourceGroup"
}, - "autoScaler": {
- "isEnabled": true,
- "resourceLimits": {
- "maxVcpu": 750,
- "maxMemoryGib": 1500
}, - "down": {
- "maxScaleDownPercentage": 30
}, - "headroom": {
- "automatic": {
- "isEnabled": true,
- "percentage": 5
}
}
}, - "strategy": {
- "spotPercentage": 50,
- "fallbackToOd": true
}, - "health": {
- "gracePeriod": 600
}, - "virtualNodeGroupTemplate": {
- "vmSizes": {
- "whitelist": [
- "standard_ds2_v2"
]
}, - "zones": [
- "1",
- "2",
- "3"
], - "launchSpecification": {
- "resourceGroupName": "azureResourceGroup",
- "customData": "IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=",
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": 7.3,
- "version": "7.3-1611"
}
}, - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": true,
- "subnetName": "testSubnet",
- "assignPublicIp": true,
- "publicIpSku": "Standard",
- "securityGroup": {
- "name": "test",
- "resourceGroupName": "test"
}, - "enableIPForwarding": true,
- "additionalIpConfigurations": [
- {
- "name": "test",
- "privateIpAddressVersion": "IPv4"
}
]
}
]
}, - "login": {
- "sshPublicKey": "ssh-rsa",
- "userName": "spotuser"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "loadBalancer",
- "resourceGroupName": "testResourceGroup",
- "name": "testLoadBalancer",
- "loadBalancerSku": "Standard",
- "backendPoolNames": [
- [
- "testBackendPool1",
- "testBackendPool2"
]
]
}
]
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "extensions": [
- {
- "name": "extensionName",
- "type": "customScript",
- "publisher": "Microsoft.Azure.Extensions",
- "apiVersion": 2,
- "minorVersionAutoUpgrade": true,
- "publicSettings": { },
- "protectedSettings": { }
}
], - "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/cluster",
- "method": "POST",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "o-134abcd",
- "name": "test",
- "controllerClusterId": "test-123124",
- "aks": {
- "name": "test-cluster",
- "resourceGroupName": "TestResourceGroup"
}, - "autoScaler": {
- "isEnabled": true,
- "resourceLimits": {
- "maxVcpu": 750,
- "maxMemoryGib": 1500
}, - "down": {
- "maxScaleDownPercentage": 30
}, - "headroom": {
- "automatic": {
- "isEnabled": true,
- "percentage": 5
}
}
}, - "strategy": {
- "spotPercentage": 50,
- "fallbackToOd": true
}, - "health": {
- "gracePeriod": 600
}, - "virtualNodeGroupTemplate": {
- "vmSizes": {
- "whitelist": [
- "standard_ds2_v2"
]
}, - "zones": [
- "1",
- "2",
- "3"
], - "launchSpecification": {
- "resourceGroupName": "azureResourceGroup",
- "customData": "IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=",
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": 7.3,
- "version": "7.3-1611"
}
}, - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": true,
- "subnetName": "testSubnet",
- "assignPublicIp": true,
- "publicIpSku": "Standard",
- "securityGroup": {
- "name": null,
- "resourceGroupName": null
}, - "enableIPForwarding": true,
- "additionalIpConfigurations": [
- { }
]
}
]
}, - "login": {
- "userName": "spotuser"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "loadBalancer",
- "resourceGroupName": "testResourceGroup",
- "name": "testLoadBalancer",
- "loadBalancerSku": "Standard",
- "backendPoolNames": [
- null
]
}
]
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "extensions": [
- {
- "name": "extensionName",
- "type": "customScript",
- "publisher": "Microsoft.Azure.Extensions",
- "apiVersion": 2,
- "minorVersionAutoUpgrade": true,
- "publicSettings": { },
- "protectedSettings": { }
}
], - "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}
}
}, - "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s"
}
}List the configurations for all Ocean clusters in the specified account.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/cluster",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "o-134abcd",
- "name": "test",
- "controllerClusterId": "test-123124",
- "aks": {
- "name": "test-cluster",
- "resourceGroupName": "TestResourceGroup"
}, - "autoScaler": {
- "isEnabled": true,
- "resourceLimits": {
- "maxVcpu": 750,
- "maxMemoryGib": 1500
}, - "down": {
- "maxScaleDownPercentage": 30
}, - "headroom": {
- "automatic": {
- "isEnabled": true,
- "percentage": 5
}
}
}, - "strategy": {
- "spotPercentage": 50,
- "fallbackToOd": true
}, - "health": {
- "gracePeriod": 600
}, - "virtualNodeGroupTemplate": {
- "vmSizes": {
- "whitelist": [
- "standard_ds2_v2"
]
}, - "zones": [
- "1",
- "2",
- "3"
], - "launchSpecification": {
- "resourceGroupName": "azureResourceGroup",
- "customData": "IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=",
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": 7.3,
- "version": "7.3-1611"
}
}, - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": true,
- "subnetName": "testSubnet",
- "assignPublicIp": true,
- "publicIpSku": "Standard",
- "securityGroup": {
- "name": null,
- "resourceGroupName": null
}, - "enableIPForwarding": true,
- "additionalIpConfigurations": [
- { }
]
}
]
}, - "login": {
- "userName": "spotuser"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "loadBalancer",
- "resourceGroupName": "testResourceGroup",
- "name": "testLoadBalancer",
- "loadBalancerSku": "Standard",
- "backendPoolNames": [
- null
]
}
]
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "extensions": [
- {
- "name": "extensionName",
- "type": "customScript",
- "publisher": "Microsoft.Azure.Extensions",
- "apiVersion": 2,
- "minorVersionAutoUpgrade": true,
- "publicSettings": { },
- "protectedSettings": { }
}
], - "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}
}
}, - "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s"
}
}Get the configurations for a specified Ocean cluster.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/cluster/o-12345abc",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "o-134abcd",
- "name": "test",
- "controllerClusterId": "test-123124",
- "aks": {
- "name": "test-cluster",
- "resourceGroupName": "TestResourceGroup"
}, - "autoScaler": {
- "isEnabled": true,
- "resourceLimits": {
- "maxVcpu": 750,
- "maxMemoryGib": 1500
}, - "down": {
- "maxScaleDownPercentage": 30
}, - "headroom": {
- "automatic": {
- "isEnabled": true,
- "percentage": 5
}
}
}, - "strategy": {
- "spotPercentage": 50,
- "fallbackToOd": true
}, - "health": {
- "gracePeriod": 600
}, - "virtualNodeGroupTemplate": {
- "vmSizes": {
- "whitelist": [
- "standard_ds2_v2"
]
}, - "zones": [
- "1",
- "2",
- "3"
], - "launchSpecification": {
- "resourceGroupName": "azureResourceGroup",
- "customData": "IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=",
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": 7.3,
- "version": "7.3-1611"
}
}, - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": true,
- "subnetName": "testSubnet",
- "assignPublicIp": true,
- "publicIpSku": "Standard",
- "securityGroup": {
- "name": null,
- "resourceGroupName": null
}, - "enableIPForwarding": true,
- "additionalIpConfigurations": [
- { }
]
}
]
}, - "login": {
- "userName": "spotuser"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "loadBalancer",
- "resourceGroupName": "testResourceGroup",
- "name": "testLoadBalancer",
- "loadBalancerSku": "Standard",
- "backendPoolNames": [
- null
]
}
]
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "extensions": [
- {
- "name": "extensionName",
- "type": "customScript",
- "publisher": "Microsoft.Azure.Extensions",
- "apiVersion": 2,
- "minorVersionAutoUpgrade": true,
- "publicSettings": { },
- "protectedSettings": { }
}
], - "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}
}
}, - "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s"
}
}All Ocean parameters are updatable, excluding aks and controllerClusterId.
This API supports partial updates, so specific fields can be updated separately.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object (ocean-cluster) The Ocean cluster. |
{- "cluster": {
- "name": "test",
- "controllerClusterId": "test-123124",
- "aks": {
- "name": "test-cluster",
- "resourceGroupName": "TestResourceGroup"
}, - "autoScaler": {
- "isEnabled": true,
- "resourceLimits": {
- "maxVcpu": 750,
- "maxMemoryGib": 1500
}, - "down": {
- "maxScaleDownPercentage": 30
}, - "headroom": {
- "automatic": {
- "isEnabled": true,
- "percentage": 5
}
}
}, - "strategy": {
- "spotPercentage": 50,
- "fallbackToOd": true
}, - "health": {
- "gracePeriod": 600
}, - "virtualNodeGroupTemplate": {
- "vmSizes": {
- "whitelist": [
- "standard_ds2_v2"
]
}, - "zones": [
- "1",
- "2",
- "3"
], - "launchSpecification": {
- "resourceGroupName": "azureResourceGroup",
- "customData": "IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=",
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": 7.3,
- "version": "7.3-1611"
}
}, - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": true,
- "subnetName": "testSubnet",
- "assignPublicIp": true,
- "publicIpSku": "Standard",
- "securityGroup": {
- "name": "test",
- "resourceGroupName": "test"
}, - "enableIPForwarding": true,
- "additionalIpConfigurations": [
- {
- "name": "test",
- "privateIpAddressVersion": "IPv4"
}
]
}
]
}, - "login": {
- "sshPublicKey": "ssh-rsa",
- "userName": "spotuser"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "loadBalancer",
- "resourceGroupName": "testResourceGroup",
- "name": "testLoadBalancer",
- "loadBalancerSku": "Standard",
- "backendPoolNames": [
- [
- "testBackendPool1",
- "testBackendPool2"
]
]
}
]
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "extensions": [
- {
- "name": "extensionName",
- "type": "customScript",
- "publisher": "Microsoft.Azure.Extensions",
- "apiVersion": 2,
- "minorVersionAutoUpgrade": true,
- "publicSettings": { },
- "protectedSettings": { }
}
], - "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/cluster/o-12345abc",
- "method": "PUT",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "o-134abcd",
- "name": "test",
- "controllerClusterId": "test-123124",
- "aks": {
- "name": "test-cluster",
- "resourceGroupName": "TestResourceGroup"
}, - "autoScaler": {
- "isEnabled": true,
- "resourceLimits": {
- "maxVcpu": 750,
- "maxMemoryGib": 1500
}, - "down": {
- "maxScaleDownPercentage": 30
}, - "headroom": {
- "automatic": {
- "isEnabled": true,
- "percentage": 5
}
}
}, - "strategy": {
- "spotPercentage": 50,
- "fallbackToOd": true
}, - "health": {
- "gracePeriod": 600
}, - "virtualNodeGroupTemplate": {
- "vmSizes": {
- "whitelist": [
- "standard_ds2_v2"
]
}, - "zones": [
- "1",
- "2",
- "3"
], - "launchSpecification": {
- "resourceGroupName": "azureResourceGroup",
- "customData": "IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=",
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": 7.3,
- "version": "7.3-1611"
}
}, - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": true,
- "subnetName": "testSubnet",
- "assignPublicIp": true,
- "publicIpSku": "Standard",
- "securityGroup": {
- "name": null,
- "resourceGroupName": null
}, - "enableIPForwarding": true,
- "additionalIpConfigurations": [
- { }
]
}
]
}, - "login": {
- "userName": "spotuser"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "loadBalancer",
- "resourceGroupName": "testResourceGroup",
- "name": "testLoadBalancer",
- "loadBalancerSku": "Standard",
- "backendPoolNames": [
- null
]
}
]
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "extensions": [
- {
- "name": "extensionName",
- "type": "customScript",
- "publisher": "Microsoft.Azure.Extensions",
- "apiVersion": 2,
- "minorVersionAutoUpgrade": true,
- "publicSettings": { },
- "protectedSettings": { }
}
], - "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}
}
}, - "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s"
}
}Delete a specified Ocean cluster.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/cluster/o-12345abc",
- "method": "DELETE",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Roll an entire Ocean cluster or roll subsets of the cluster by specifying virtualNodeGroupIds or vmNames. Performing this request will start the roll immediately and run it in defined batches. Note that the first response for a successful request will indicate the start of a roll. In order to check the status of a roll, you can use the GET Roll API.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object Object that specifies the parameters required to initiate a roll (also called a deployment). |
{- "roll": {
- "batchSizePercentage": 25,
- "comment": "This is why I deployed my cluster."
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/cluster/o-12345abc/roll",
- "method": "POST",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "acr-5aaf854e",
- "oceanId": "o-12e31234",
- "status": "IN_PROGRESS",
- "currentBatch": 2,
- "numOfBatches": 4,
- "comment": "This is why I deployed my cluster.",
- "progress": {
- "unit": "percentage",
- "value": 25,
- "detailedStatus": {
- "oldVms": [
- {
- "vmName": "vm-8f42d8217593",
- "status": "REPLACED"
}, - {
- "vmName": "vm-5da87fb0bd21",
- "status": "COULD_NOT_BE_REPLACED"
}, - {
- "vmName": "vm-1e50f9fabf2f",
- "status": "TO_BE_REPLACED"
}, - {
- "vmName": "vm-9597db5ae6fe",
- "status": "TO_BE_REPLACED"
}
]
}
}, - "vmNames": [
- "vm-8f42d8217593",
- "vm-5da87fb0bd21",
- "vm-1e50f9fabf2f",
- "vm-9597db5ae6fe"
], - "virtualNodeGroupIds": [
- "vng-0950f269",
- "vng-0a8bc62a"
], - "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s:cluster:roll"
}
}Get status for all rolls of an Ocean cluster.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/cluster/o-12345abc/roll",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "acr-5aaf854e",
- "oceanId": "o-12e31234",
- "status": "IN_PROGRESS",
- "currentBatch": 2,
- "numOfBatches": 4,
- "comment": "This is why I deployed my cluster.",
- "progress": {
- "unit": "percentage",
- "value": 25,
- "detailedStatus": {
- "oldVms": [
- {
- "vmName": "vm-8f42d8217593",
- "status": "REPLACED"
}, - {
- "vmName": "vm-5da87fb0bd21",
- "status": "COULD_NOT_BE_REPLACED"
}, - {
- "vmName": "vm-1e50f9fabf2f",
- "status": "TO_BE_REPLACED"
}, - {
- "vmName": "vm-9597db5ae6fe",
- "status": "TO_BE_REPLACED"
}
]
}
}, - "vmNames": [
- "vm-8f42d8217593",
- "vm-5da87fb0bd21",
- "vm-1e50f9fabf2f",
- "vm-9597db5ae6fe"
], - "virtualNodeGroupIds": [
- "vng-0950f269",
- "vng-0a8bc62a"
], - "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s:cluster:roll"
}
}Update a roll of an Ocean cluster.
Performing the request will stop the next batch in a roll.
| clusterRollId required | string Example: acr-12345abc Ocean cluster roll identifier. |
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object Object that specifies the roll parameters to update. |
{- "roll": {
- "status": "STOPPED"
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/cluster/o-12345abc/roll/acr-12345abc",
- "method": "PUT",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "acr-5aaf854e",
- "oceanId": "o-12e31234",
- "status": "STOPPED",
- "currentBatch": 2,
- "numOfBatches": 4,
- "comment": "This is why I deployed my cluster.",
- "progress": {
- "unit": "percentage",
- "value": 25,
- "detailedStatus": {
- "oldVms": [
- {
- "vmName": "vm-8f42d8217593",
- "status": "REPLACED"
}, - {
- "vmName": "vm-5da87fb0bd21",
- "status": "COULD_NOT_BE_REPLACED"
}, - {
- "vmName": "vm-1e50f9fabf2f",
- "status": "TO_BE_REPLACED"
}, - {
- "vmName": "vm-9597db5ae6fe",
- "status": "TO_BE_REPLACED"
}
]
}
}, - "vmNames": [
- "vm-8f42d8217593",
- "vm-5da87fb0bd21",
- "vm-1e50f9fabf2f",
- "vm-9597db5ae6fe"
], - "virtualNodeGroupIds": [
- "vng-0950f269",
- "vng-0a8bc62a"
], - "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s:cluster:roll"
}
}Get status for a specific roll of an Ocean cluster.
| clusterRollId required | string Example: acr-12345abc Ocean cluster roll identifier. |
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/cluster/o-12345abc/roll/acr-12345abc",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "acr-5aaf854e",
- "oceanId": "o-12e31234",
- "status": "IN_PROGRESS",
- "currentBatch": 2,
- "numOfBatches": 4,
- "comment": "This is why I deployed my cluster.",
- "progress": {
- "unit": "percentage",
- "value": 25,
- "detailedStatus": {
- "oldVms": [
- {
- "vmName": "vm-8f42d8217593",
- "status": "REPLACED"
}, - {
- "vmName": "vm-5da87fb0bd21",
- "status": "COULD_NOT_BE_REPLACED"
}, - {
- "vmName": "vm-1e50f9fabf2f",
- "status": "TO_BE_REPLACED"
}, - {
- "vmName": "vm-9597db5ae6fe",
- "status": "TO_BE_REPLACED"
}
]
}
}, - "vmNames": [
- "vm-8f42d8217593",
- "vm-5da87fb0bd21",
- "vm-1e50f9fabf2f",
- "vm-9597db5ae6fe"
], - "virtualNodeGroupIds": [
- "vng-0950f269",
- "vng-0a8bc62a"
], - "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s:cluster:roll"
}
}Get nodes data of an Ocean cluster.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| virtualNodeGroupId | string Example: virtualNodeGroupId=vng-12345abc Ocean Virtual Node Group identifier. |
| vmName | string Example: vmName=vm-123 Get a specific node by vmName. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/cluster/o-12345abc/nodes",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "vmName": "vm-123",
- "vmSize": "standard_a1_v2",
- "availabilityZone": "eastus2-1",
- "virtualNodeGroupId": "ols-123",
- "virtualNodeGroupName": "dev-vng",
- "lifeCycle": "Spot",
- "publicIp": "1.2.3.4",
- "workloadRequestedMilliCpu": 1320,
- "workloadRequestedMemoryInMiB": 500,
- "workloadRequestedGpu": 1,
- "headroomRequestedMilliCpu": 1320,
- "headroomRequestedMemoryInMiB": 512,
- "headroomRequestedGpu": 1,
- "allocatableMilliCpu": 2000,
- "allocatableMemoryInMiB": 3646.1,
- "allocatableGpu": 1,
- "nodeName": "vm-123",
- "registrationStatus": "Registered",
- "createdAt": "2021-10-01T05:51:06.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s:nodes"
}
}The Import Cluster API call returns a JSON formatted Ocean cluster specification for a given AKS cluster and import identifier. The returned specification is ready to use in the Ocean AKS Cluster Create API call.
Prerequisites:
curl -fsSL https://spotinst-public.s3.amazonaws.com/integrations/kubernetes/aks/spot-aks-connector/init.sh | \
bash -s acd-12345678| acdIdentifier required | string Example: acd-12345abc During the import from AKS to Ocean, the user executes a script that gets data from the AKS cluster and sends it to the Spot API. The acdIdentifier is the identifier that is associated with this data, and it is used to create an Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object (ocean-cluster-import) The Ocean cluster import request. |
{- "cluster": {
- "name": "test",
- "controllerClusterId": "test-123124",
- "aks": {
- "name": "test-cluster",
- "resourceGroupName": "TestResourceGroup"
}, - "autoScaler": {
- "isEnabled": true,
- "resourceLimits": {
- "maxVcpu": 750,
- "maxMemoryGib": 1500
}, - "down": {
- "maxScaleDownPercentage": 30
}, - "headroom": {
- "automatic": {
- "isEnabled": true,
- "percentage": 5
}
}
}, - "strategy": {
- "spotPercentage": 50,
- "fallbackToOd": true
}, - "health": {
- "gracePeriod": 600
}, - "virtualNodeGroupTemplate": {
- "vmSizes": {
- "whitelist": [
- "standard_ds2_v2"
]
}, - "zones": [
- "1",
- "2",
- "3"
]
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/cluster/aks/import/acd-12345abc",
- "method": "POST",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "cluster": {
- "id": "o-134abcd",
- "name": "test",
- "controllerClusterId": "test-123124",
- "aks": {
- "name": "test-cluster",
- "resourceGroupName": "TestResourceGroup"
}, - "autoScaler": {
- "isEnabled": true,
- "resourceLimits": {
- "maxVcpu": 750,
- "maxMemoryGib": 1500
}, - "down": {
- "maxScaleDownPercentage": 30
}, - "headroom": {
- "automatic": {
- "isEnabled": true,
- "percentage": 5
}
}
}, - "strategy": {
- "spotPercentage": 50,
- "fallbackToOd": true
}, - "health": {
- "gracePeriod": 600
}, - "virtualNodeGroupTemplate": {
- "vmSizes": {
- "whitelist": [
- "standard_ds2_v2"
]
}, - "zones": [
- "1",
- "2",
- "3"
], - "launchSpecification": {
- "resourceGroupName": "azureResourceGroup",
- "customData": "IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=",
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": 7.3,
- "version": "7.3-1611"
}
}, - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": null,
- "subnetName": null,
- "assignPublicIp": null,
- "publicIpSku": null,
- "securityGroup": { },
- "enableIPForwarding": null,
- "additionalIpConfigurations": [ ]
}
]
}, - "login": {
- "userName": "spotuser"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": null,
- "resourceGroupName": null,
- "name": null,
- "loadBalancerSku": null,
- "backendPoolNames": [ ]
}
]
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "extensions": [
- {
- "name": "extensionName",
- "type": "customScript",
- "publisher": "Microsoft.Azure.Extensions",
- "apiVersion": 2,
- "minorVersionAutoUpgrade": true,
- "publicSettings": { },
- "protectedSettings": { }
}
], - "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}
}
}, - "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s"
}
}Scale down specific virtual machines in an Ocean cluster.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| vmsToDetach required | Array of strings Array of virtual machine names to detach. |
{- "vmsToDetach": [
- "vm-0fbd69f960db"
]
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/cluster/o-12345abc/detachVms",
- "method": "PUT",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "detachedVms": [
- {
- "vmName": "vm-12345"
}
]
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s:cluster:detachVms"
}
}Create a virtual node group.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object (Ocean AKS Virtual Node Group) |
{- "virtualNodeGroup": {
- "name": "testVng",
- "oceanId": "o-13245abc",
- "resourceLimits": {
- "maxInstanceCount": 5
}, - "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "vmSizes": [
- "standard_ds2_v2",
- "standard_d2s_v4"
], - "zones": [
- "1",
- "2",
- "3"
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "gpuPerUnit": 0,
- "numOfUnits": 3
}
]
}, - "launchSpecification": {
- "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
]
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/virtualNodeGroup",
- "method": "POST",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "virtualNodeGroup": {
- "id": "vng-12345abc",
- "name": "testVng",
- "oceanId": "o-13245abc",
- "resourceLimits": {
- "maxInstanceCount": 5
}, - "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "vmSizes": [
- "standard_ds2_v2",
- "standard_d2s_v4"
], - "zones": [
- "1",
- "2",
- "3"
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "gpuPerUnit": 0,
- "numOfUnits": 3
}
]
}, - "launchSpecification": {
- "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
]
}, - "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s:virtualNodeGroup"
}
}List the configurations for all virtual node groups in the account or in a specified cluster.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| oceanId required | string Example: oceanId=o-12345abc Identifier of the Ocean cluster. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/virtualNodeGroup",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "virtualNodeGroup": {
- "id": "vng-12345abc",
- "name": "testVng",
- "oceanId": "o-13245abc",
- "resourceLimits": {
- "maxInstanceCount": 5
}, - "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "vmSizes": [
- "standard_ds2_v2",
- "standard_d2s_v4"
], - "zones": [
- "1",
- "2",
- "3"
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "gpuPerUnit": 0,
- "numOfUnits": 3
}
]
}, - "launchSpecification": {
- "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
]
}, - "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s:virtualNodeGroup"
}
}Get the configuration of a specified virtual node group.
| virtualNodeGroupId required | string Example: vng-12345abc Ocean Virtual Node Group identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/virtualNodeGroup/vng-12345abc",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "virtualNodeGroup": {
- "id": "vng-12345abc",
- "name": "testVng",
- "oceanId": "o-13245abc",
- "resourceLimits": {
- "maxInstanceCount": 5
}, - "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "vmSizes": [
- "standard_ds2_v2",
- "standard_d2s_v4"
], - "zones": [
- "1",
- "2",
- "3"
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "gpuPerUnit": 0,
- "numOfUnits": 3
}
]
}, - "launchSpecification": {
- "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
]
}, - "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s:virtualNodeGroup"
}
}All virtual node group parameters are updatable.
| virtualNodeGroupId required | string Example: vng-12345abc Ocean Virtual Node Group identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object (Ocean AKS Virtual Node Group) |
{- "virtualNodeGroup": {
- "name": "testVng",
- "oceanId": "o-13245abc",
- "resourceLimits": {
- "maxInstanceCount": 5
}, - "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "vmSizes": [
- "standard_ds2_v2",
- "standard_d2s_v4"
], - "zones": [
- "1",
- "2",
- "3"
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "gpuPerUnit": 0,
- "numOfUnits": 3
}
]
}, - "launchSpecification": {
- "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
]
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/virtualNodeGroup/vng-12345abc",
- "method": "PUT",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "virtualNodeGroup": {
- "id": "vng-12345abc",
- "name": "testVng",
- "oceanId": "o-13245abc",
- "resourceLimits": {
- "maxInstanceCount": 5
}, - "labels": [
- {
- "key": "env",
- "value": "test"
}
], - "taints": [
- {
- "key": "taintKey",
- "value": "taintValue",
- "effect": "NoSchedule"
}
], - "vmSizes": [
- "standard_ds2_v2",
- "standard_d2s_v4"
], - "zones": [
- "1",
- "2",
- "3"
], - "autoScale": {
- "headrooms": [
- {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "gpuPerUnit": 0,
- "numOfUnits": 3
}
]
}, - "launchSpecification": {
- "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
]
}, - "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s:virtualNodeGroup"
}
}Delete a specified virtual node group in an Ocean cluster.
| virtualNodeGroupId required | string Example: vng-12345abc Ocean Virtual Node Group identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/virtualNodeGroup/vng-12345abc",
- "method": "DELETE",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Launch VMs in a Virtual Node Group.
| virtualNodeGroupId required | string Example: vng-12345abc Ocean Virtual Node Group identifier. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object (Ocean AKS Virtual Node Group Launch Request) |
{- "launchRequest": {
- "amount": 5
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/virtualNodeGroup/vng-12345abc/launchVms",
- "method": "PUT",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "vms": [
- {
- "vmName": "vm-001c1268d5bf",
- "vmSize": "Standard_DS2_v2",
- "lifeCycle": "spot"
}
]
}
], - "count": 1,
- "kind": "spotinst:ocean:azure:k8s:virtualNodeGroup:launchVms"
}
}Get right-sizing recommendations for an Ocean cluster and filter them according to namespace or label.
| oceanClusterId required | string Example: o-12345abc Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| namespace | string For Kubernetes, namespace is an optional query parameter which filters the retrieved resources. |
object Optional - may be null. |
{- "filter": {
- "namespaces": [
- [
- "sparkSpace",
- "kube-system"
]
], - "attribute": {
- "type": "label",
- "key": "app",
- "operator": "Equals",
- "value": "redis"
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/azure/k8s/cluster/o-abcd1234/rightSizing/suggestion",
- "method": "POST",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "resourceName": "redis-controller",
- "resourceType": "deployment",
- "namespace": "kube-system",
- "suggestedCPU": 4,
- "suggestedMemory": 19,
- "requestedCPU": 50,
- "requestedMemory": 50,
- "containers": [
- {
- "name": "dnsmasq",
- "requestedCPU": 10,
- "suggestedCPU": 2,
- "requestedMemory": 40,
- "suggestedMemory": 15
}, - {
- "name": "sidecar",
- "requestedCPU": 40,
- "suggestedCPU": 2,
- "requestedMemory": 10,
- "suggestedMemory": 4
}
]
}, - {
- "resourceName": "test-redis",
- "resourceType": "deployment",
- "namespace": "sparkSpace",
- "suggestedCPU": 2,
- "suggestedMemory": 20,
- "requestedCPU": 50,
- "requestedMemory": 30,
- "containers": [
- {
- "name": "dns-controller",
- "requestedCPU": 20,
- "suggestedCPU": 1,
- "requestedMemory": 20,
- "suggestedMemory": 15
}, - {
- "name": "kubedns",
- "requestedCPU": 30,
- "suggestedCPU": 1,
- "requestedMemory": 10,
- "suggestedMemory": 5
}
]
}
], - "count": 2,
- "kind": "spotinst:ocean:azure:k8s:cluster:rightSizing:suggestion"
}
}Ocean On-Premise API - Understand cost drivers within your on-premise clusters and compare the costs to the Ocean Cloud.
Create a new Ocean On-Prem entity.
The Ocean Controller is used to monitor the cluster resources and report back to Ocean and is required for Ocean On-Prem. To install the Ocean Controller, complete and run the following script on a machine with kubectl command line tool installed and configured:
#!/usr/bin/env bash
curl -fsSL http://spotinst-public.s3.amazonaws.com/integrations/kubernetes/cluster-controller/scripts/init.sh | \
SPOTINST_TOKEN=<ENTER YOUR TOKEN HERE> \
SPOTINST_ACCOUNT=<ENTER YOUR SPOTINST ACCOUNT ID HERE> \
SPOTINST_CLUSTER_IDENTIFIER=<ENTER YOUR CLUSTER IDENTIFIER HERE> \
bash
For more on the Ocean Controller and Ocean's anatomy see the documentation here.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object |
{- "cluster": {
- "name": "oceanName",
- "description": "Development",
- "controllerClusterIdentifier": "k8sCluster",
- "pricePerUnit": {
- "cpuHour": 0.015,
- "memoryHour": 0.002
}
}
}{- "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:ocean:onprem:k8s",
- "items": {
- "id": "o-18887922",
- "name": "oceanName",
- "description": "development",
- "controllerClusterIdentifier": "k8sCluster",
- "pricePerUnit": {
- "cpuHour": 0.015,
- "memoryHour": 0.002
}, - "createdAt": "2018-11-26T09:39:52.933Z",
- "updatedAt": "2018-11-26T09:39:52.933Z"
}, - "count": 1
}
}List the configurations for all Ocean cluster in the specified account.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:ocean:onprem:k8s",
- "items": {
- "id": "o-18887922",
- "name": "oceanName",
- "description": "development",
- "controllerClusterIdentifier": "k8sCluster",
- "pricePerUnit": {
- "cpuHour": 0.015,
- "memoryHour": 0.002
}, - "createdAt": "2018-11-26T09:39:52.933Z",
- "updatedAt": "2018-11-26T09:39:52.933Z"
}, - "count": 1
}
}Delete an Ocean On-Prem cluster entity in Spot Ocean. This DOES NOT affect your on-prem cluster.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Get the configurations for the specified Ocean On-Prem cluster entity.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:ocean:onprem:k8s",
- "items": {
- "id": "o-18887922",
- "name": "oceanName",
- "description": "development",
- "controllerClusterIdentifier": "k8sCluster",
- "pricePerUnit": {
- "cpuHour": 0.015,
- "memoryHour": 0.002
}, - "createdAt": "2018-11-26T09:39:52.933Z",
- "updatedAt": "2018-11-26T09:39:52.933Z"
}, - "count": 1
}
}All Ocean on-prem parameters are updatable. This API supports partial updates, so specific fields can be updated separately.
| oceanClusterId required | string Example: o-abcd1234 Identifier of the Ocean cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object (AWS Cluster) |
| group | object |
{- "cluster": {
- "name": "oceanName",
- "description": "Development",
- "controllerClusterIdentifier": "k8sCluster",
- "pricePerUnit": {
- "cpuHour": 0.015,
- "memoryHour": 0.002
}
}, - "group": { }
}{- "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:ocean:onprem:k8s",
- "items": {
- "id": "o-18887922",
- "name": "oceanName",
- "description": "development",
- "controllerClusterIdentifier": "k8sCluster",
- "pricePerUnit": {
- "cpuHour": 0.015,
- "memoryHour": 0.002
}, - "createdAt": "2018-11-26T09:39:52.933Z",
- "updatedAt": "2018-11-26T09:39:52.933Z"
}, - "count": 1
}
}Insights allows Spot users on AWS to connect a Kubernetes cluster and within minutes get the cluster analyzed with insights about the current state of infrastructure in the cluster, and the potential effect of migrating the specific cluster into Ocean. Through its powerful features, Ocean presents significant opportunities for infrastructure optimization and automation, which are on display in the Insights console. Connected to Kubernetes clusters and running a continuous analysis, Ocean Insights delivers a holistic picture of your cluster and workloads behavior, from expected cloud costs and resource utilization. Through a simple UI, users will see a breakdown of potential savings when they first connect to Ocean Insights.
Creates an Ocean Insight entity according to a given specification.
Prerequisite:
The Ocean Controller is used to monitor the cluster resources and report back to Ocean. The Ocean Controller is required for Ocean Insights.
To install the Ocean Controller, complete and run the following script on a machine with the kubectl command line tool installed and configured:
#!/usr/bin/env bash
curl -fsSL http://spotinst-public.s3.amazonaws.com/integrations/kubernetes/cluster-controller/scripts/init.sh | \
SPOTINST_TOKEN=<ENTER YOUR TOKEN HERE> \
SPOTINST_ACCOUNT=<ENTER YOUR SPOTINST ACCOUNT ID HERE> \
SPOTINST_CLUSTER_IDENTIFIER=<ENTER YOUR CLUSTER IDENTIFIER HERE> \
bash| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object (Ocean Insight) |
{- "cluster": {
- "name": "Ocean::my-ocean-insight-name",
- "controllerClusterId": "oceanInsight.k8s"
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/insight/k8s/cluster",
- "method": "POST",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "o-134abcd",
- "name": "test",
- "controllerClusterId": "test-123124",
- "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:insight:k8s"
}
}Get the configurations for all Ocean Insights clusters in the specified account.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/insight/k8s/cluster",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "o-134abcd",
- "name": "test",
- "controllerClusterId": "test-123124",
- "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:insight:k8s"
}
}Get the configurations for a specified Ocean Insight cluster.
| OCEAN_INSIGHT_ID required | string Example: oic-abcd1234 The ID of the Ocean Insight cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/insight/k8s/cluster/oic-12345abc",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "o-134abcd",
- "name": "test",
- "controllerClusterId": "test-123124",
- "createdAt": "2021-03-17T08:13:08.000Z",
- "updatedAt": "2021-03-17T15:06:13.000Z"
}
], - "count": 1,
- "kind": "spotinst:ocean:insight:k8s"
}
}Delete a specified Ocean Insight cluster.
| OCEAN_INSIGHT_ID required | string Example: oic-abcd1234 The ID of the Ocean Insight cluster. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/ocean/insight/k8s/cluster/oic-12345abc",
- "method": "DELETE",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Create a new AWS Elastigroup.
There are several third Party Integrations available, which can be activated based on your configuration, such as:
You can create a beanstalk elastigroup with the following steps:
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object Elastigroup Configuration |
{- "group": {
- "name": "my-Elastigroup",
- "description": "This Elastigroup is used for Development",
- "region": "use-east-1",
- "capacity": {
- "target": 1,
- "minimum": 0,
- "maximum": 10,
- "unit": "instance"
}, - "strategy": {
- "risk": 100,
- "onDemandCount": 0,
- "availabilityVsCost": "balanced",
- "fallbackToOd": true,
- "utilizeReservedInstances": false,
- "drainingTimeout": 120,
- "signals": [
- {
- "name": "INSTANCE_READY",
- "timeout": 120
}
], - "persistence": [
- {
- "shouldPersistPrivateIp": true,
- "shouldPersistRootDevice": true,
- "shouldPersistBlockDevices": true,
- "blockDevicesMode": "reattach"
}
], - "revertToSpot": {
- "performAt": "timeWindow",
- "timeWindows": [
- "Mon:03:00-Wed:02:30"
]
}, - "scalingStrategy": {
- "terminationPolicy": "default"
}
}, - "compute": {
- "product": "Linux/UNIX",
- "elasticIps": [
- "eipalloc-9d4e16f8"
], - "privateIps": [
- "172.1.1.0"
], - "instanceTypes": {
- "ondemand": "m3.medium",
- "spot": [
- [
- "c3.large",
- "c4.large",
- "m3.large",
- "r3.large"
]
], - "preferredSpot": [
- [
- "c4.large"
]
], - "weights": [
- {
- "instanceType": "c4.large",
- "weightedCapacity": 8
}
]
}, - "subnetIds": [
- [
- "subnet-4c1d1538",
- "subnet-2791bb61",
- "subnet-703a6f58",
- "subnet-c62846fc"
]
], - "availabilityZones": [
- {
- "name": "us-west-2a",
- "subnetIds": [
- [
- "subnet-4333093a"
]
], - "placementGroupName": "string"
}
], - "preferredAvailabilityZones": [
- [
- "us-east-1a",
- "us-east-1b"
]
], - "launchSpecification": {
- "creditSpecification": {
- "cpuCredits": "unlimited"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "name": "MyTargetGroup",
- "arn": "arn:aws:elasticloadbalancing:us-west-2:922761411234:targetgroup/MyTargetGroup/1fe63217f8ff1234",
- "type": "TARGET_GROUP",
- "balancerId": "lb-123456789",
- "targetSetId": "ts-123456789",
- "azAwareness": false,
- "autoWeight": true
}
]
}, - "healthCheckType": "EC2",
- "healthCheckGracePeriod": 600,
- "healthCheckUnhealthyDurationBeforeReplacement": 60,
- "securityGroupIds": [
- [
- "sg-0dfc2c8760df6fec7"
]
], - "monitoring": false,
- "ebsOptimized": false,
- "imageId": "ami-01e24be29428c15b2",
- "keyPair": "labs-oregon",
- "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvdcz",
- "ebs": {
- "iops": 0,
- "throughput": 125,
- "volumeType": "gp2",
- "deleteOnTermination": true,
- "volumeSize": 12,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "networkInterfaces": [
- {
- "description": "string",
- "deviceIndex": 0,
- "secondaryPrivateIpAddressCount": 0,
- "associatePublicIpAddress": true,
- "deleteOnTermination": true,
- "networkInterfaceId": "string",
- "privateIpAddresses": [
- {
- "privateIpAddress": "string",
- "primary": true
}
], - "subnetId": "string",
- "associateIpv6Address": true
}
], - "iamRole": {
- "name": "my-iamRole"
}, - "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "shutdownScript": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "resourceTagSpecification": {
- "volumes": {
- "shouldTag": false
}, - "snapshots": {
- "shouldTag": true
}, - "enis": {
- "shouldTag": false
}, - "amis": {
- "shouldTag": true
}
}, - "metadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": "33"
}, - "cpuOptions": {
- "threadsPerCore": "1"
}, - "autoHealing": true
}
}, - "scaling": {
- "up": [
- {
- "policyName": "my-up-policy",
- "metricName": "CPUUtilization",
- "statistic": "average",
- "extendedStatistic": "p1.5",
- "unit": "percent",
- "threshold": 90,
- "action": {
- "type": "updateCapacity",
- "adjustment": 1,
- "minTargetCapacity": 1,
- "target": 1,
- "minimum": 0,
- "maximum": 5
}, - "stepAdjustments": [
- {
- "action": {
- "type": "setMinTarget",
- "adjustment": 2,
- "minTargetCapacity": 3,
- "target": 3,
- "minimum": 4,
- "maximum": 10
}, - "threshold": 50
}
], - "namespace": "AWS/EC2",
- "dimensions": [
- {
- "name": "InstanceId",
- "value": "string"
}
], - "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "isEnabled": true
}
], - "down": [
- {
- "policyName": "my-down-policy",
- "metricName": "CPUUtilization",
- "statistic": "average",
- "extendedStatistic": "p1.5",
- "unit": "percent",
- "threshold": 90,
- "action": {
- "type": "updateCapacity",
- "adjustment": 1,
- "minTargetCapacity": 1,
- "target": 1,
- "minimum": 0,
- "maximum": 5
}, - "stepAdjustments": [
- {
- "action": {
- "type": "percentageAdjustment",
- "adjustment": 40,
- "maxTargetCapacity": 1,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "threshold": 10
}
], - "namespace": "AWS/EC2",
- "dimensions": [
- {
- "name": "InstanceId",
- "value": "string"
}
], - "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "isEnabled": true
}
], - "multipleMetrics": {
- "metrics": [
- {
- "name": "metric1",
- "metricName": "CPUUtilization",
- "namespace": "AWS/EC2",
- "statistic": "average",
- "extendedStatistic": "p1.5",
- "unit": "percent",
- "dimensions": [
- {
- "name": "InstanceId",
- "value": "string"
}
]
}
], - "expressions": [
- {
- "name": "e1",
- "expression": "metric1+10"
}
]
}, - "target": [
- {
- "source": "spectrum",
- "policyName": "my-up-policy",
- "metricName": "CPUUtilization",
- "statistic": "average",
- "unit": "percent",
- "namespace": "AWS/EC2",
- "target": 1,
- "cooldown": 300
}
]
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "startTime": "2018-05-23T10:55:09Z",
- "frequency": "hourly",
- "cronExpression": "0 1 * * *",
- "taskType": "scale",
- "scaleTargetCapacity": 0,
- "scaleMinCapacity": 0,
- "scaleMaxCapacity": 0,
- "targetCapacity": 0,
- "MinCapacity": 0,
- "MaxCapacity": 0,
- "batchSizePercentage": 0
}
]
}, - "thirdPartiesIntegration": {
- "rancher": {
- "accessKey": "1",
- "secretKey": "SECRET",
- "version": 1
}, - "kubernetes": {
- "integrationMode": "pod",
- "clusterIdentifier": "test-k8s",
- "autoScale": {
- "isEnabled": true,
- "cooldown": 300,
- "down": {
- "evaluationPeriods": 5,
- "maxScaleDownPercentage": 70,
- "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2,
- "gpuPerUnit": 2
}
}, - "labels": [
- {
- "key": "group, kops.k8s.io/instancegroup",
- "value": "microservices"
}
], - "isAutoConfig": false
}
}, - "mesosphere": {
- "apiServer": "1.2.3.4"
}, - "mlbRuntime": {
- "deploymentId": "dp-rm0f5b912345"
}, - "nomad": {
- "masterPort": 443,
- "autoScale": {
- "isEnabled": true,
- "cooldown": 180,
- "down": {
- "evaluationPeriods": 3
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "constraints": [
- {
- "key": "${node.class}",
- "value": "value"
}
]
}, - "aclToken": 123,
- "tlsConfig": {
- "tlsEnabled": true,
- "privateKey": "PRIVATE KEY CERTIFICATE STR",
- "certificate": "PUBLIC KEY CERTIFICATE STR"
}
}, - "chef": {
- "organization": "ORGNAME",
- "chefVersion": 12.1,
- "user": "User",
- "pemKey": "Key"
}, - "rightScale": {
- "accountId": "ID",
- "refreshToken": "TOKEN",
- "region": "us-east-1"
}, - "opsWorks": {
- "layerId": "00d9m815-8aac-62b7-cc01-123456, xxxxxx-xxxxxxxx, xxxxxxx-xxxxxxxxxx",
- "stackType": "CLASSIC"
}, - "codeDeploy": {
- "cleanUpOnFailure": false,
- "terminateInstanceOnFailure": false,
- "deploymentGroups": [
- {
- "applicationName": "test-app",
- "deploymentGroupName": "test-grp"
}
]
}, - "route53": {
- "domains": [
- {
- "hostedZoneId": "Z3UFMBCGJMYLUT",
- "spotinstAccountId": "act-1234abcd",
- "recordSetType": "a",
- "recordSets": [
- {
- "name": "testcname.spot.io.",
- "usePublicIp": true,
- "usePublicDns": true
}
]
}
]
}, - "elasticBeanstalk": {
- "environmentId": "e-12345",
- "deploymentPreferences": {
- "automaticRoll": true,
- "batchSizePercentage": 50,
- "gracePeriod": 600,
- "strategy": {
- "action": "REPLACE_SERVER",
- "shouldDrainInstances": true
}
}, - "managedActions": {
- "platformUpdate": {
- "performAt": "timeWindow",
- "timeWindow": "Mon:23:50-Tue:00:20",
- "updateLevel": "patch",
- "instanceRefreshEnabled": true
}
}
}, - "ecs": {
- "clusterName": "test-ecs",
- "autoScale": {
- "isEnabled": true,
- "cooldown": 300,
- "attributes": {
- "key": "the_key",
- "value": "the_value"
}, - "resourceLimits": {
- "maxMemoryGib": 1,
- "maxVcpu": 1
}, - "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": 20,
- "shouldScaleDownNonServiceTasks": true,
- "enableAutomaticAndManualHeadroom": false
}, - "batch": {
- "jobQueueNames": [
- [
- "dumpy-big-processing"
]
]
}, - "optimizeImages": {
- "shouldOptimizeEcsAmi": true,
- "performAt": "timeWindow",
- "timeWindows": [
- "Mon:03:00-Wed:02:30"
]
}
}, - "dockerSwarm": {
- "masterHost": "swarm1.swarm.com",
- "masterPort": 1234,
- "autoScale": {
- "isEnabled": "true",
- "cooldown": 300,
- "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "numOfUnits": 3
}, - "tlsConfig": {
- "tlsEnabled": true,
- "privateKey": "PRIVATE KEY CERTIFICATE STR",
- "certificate": "PUBLIC KEY CERTIFICATE STR"
}
}
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "name": "my-Elastigroup",
- "description": "This Elastigroup is used for Development",
- "region": "us-east-1",
- "capacity": {
- "target": 1,
- "minimum": 0,
- "maximum": 10,
- "unit": "instance"
}, - "strategy": {
- "risk": 100,
- "onDemandCount": 0,
- "availabilityVsCost": "balanced",
- "fallbackToOd": true,
- "utilizeReservedInstances": false,
- "drainingTimeout": 120,
- "signals": [
- {
- "name": "INSTANCE_READY",
- "timeout": 120
}
], - "persistence": [
- {
- "shouldPersistPrivateIp": true,
- "shouldPersistRootDevice": true,
- "shouldPersistBlockDevices": true,
- "blockDevicesMode": "reattach"
}
], - "revertToSpot": {
- "performAt": "timeWindow",
- "timeWindows": [
- "Mon:03:00-Wed:02:30"
]
}, - "scalingStrategy": {
- "terminationPolicy": "default"
}
}, - "compute": {
- "product": "Linux/UNIX",
- "elasticIps": [
- "eipalloc-9d4e16f8"
], - "privateIps": [
- "172.1.1.0"
], - "instanceTypes": {
- "ondemand": "m3.medium",
- "spot": [
- [
- "c3.large",
- "c4.large",
- "m3.large",
- "r3.large"
]
], - "preferredSpot": [
- [
- "c4.large"
]
], - "weights": [
- {
- "instanceType": "c4.large",
- "weightedCapacity": 8
}
]
}, - "subnetIds": [
- [
- "subnet-4c1d1538",
- "subnet-2791bb61",
- "subnet-703a6f58",
- "subnet-c62846fc"
]
], - "availabilityZones": [
- {
- "name": "us-west-2a",
- "subnetIds": [
- [
- "subnet-4333093a"
]
], - "placementGroupName": "string"
}
], - "preferredAvailabilityZones": [
- [
- "us-east-1a",
- "us-east-1b"
]
], - "launchSpecification": {
- "creditSpecification": {
- "cpuCredits": "unlimited"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "name": null,
- "arn": null,
- "type": null,
- "balancerId": null,
- "targetSetId": null,
- "azAwareness": null,
- "autoWeight": null
}
]
}, - "healthCheckType": "EC2",
- "healthCheckGracePeriod": 600,
- "healthCheckUnhealthyDurationBeforeReplacement": 60,
- "securityGroupIds": [
- [
- "sg-0dfc2c8760df6fec7"
]
], - "monitoring": false,
- "ebsOptimized": false,
- "imageId": "ami-01e24be29428c15b2",
- "keyPair": "labs-oregon",
- "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvdcz",
- "ebs": {
- "iops": null,
- "throughput": null,
- "volumeType": null,
- "deleteOnTermination": null,
- "volumeSize": null,
- "dynamicVolumeSize": { }
}
}
], - "networkInterfaces": [
- {
- "description": "string",
- "deviceIndex": 0,
- "secondaryPrivateIpAddressCount": 0,
- "associatePublicIpAddress": true,
- "deleteOnTermination": true,
- "networkInterfaceId": "string",
- "privateIpAddresses": [
- { }
], - "subnetId": "string",
- "associateIpv6Address": true
}
], - "iamRole": {
- "name": "my-iamRole"
}, - "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "shutdownScript": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "metadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": "33"
}, - "cpuOptions": {
- "threadsPerCore": "1"
}, - "resourceTagSpecification": {
- "volumes": {
- "shouldTag": false
}, - "snapshots": {
- "shouldTag": true
}, - "enis": {
- "shouldTag": false
}, - "amis": {
- "shouldTag": true
}
}, - "autoHealing": true
}
}, - "scaling": {
- "up": [
- {
- "policyName": "my-up-policy",
- "metricName": "CPUUtilization",
- "statistic": "average",
- "extendedStatistic": "p1.5",
- "unit": "percent",
- "threshold": 90,
- "action": {
- "type": "updateCapacity",
- "adjustment": 1,
- "minTargetCapacity": 1,
- "target": 1,
- "minimum": 0,
- "maximum": 5
}, - "stepAdjustments": [
- {
- "action": { },
- "threshold": null
}
], - "namespace": "AWS/EC2",
- "dimensions": [
- {
- "name": null,
- "value": null
}
], - "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "isEnabled": true
}
], - "down": [
- {
- "policyName": "my-down-policy",
- "metricName": "CPUUtilization",
- "statistic": "average",
- "extendedStatistic": "p1.5",
- "unit": "percent",
- "threshold": 90,
- "action": {
- "type": "updateCapacity",
- "adjustment": 1,
- "minTargetCapacity": 1,
- "target": 1,
- "minimum": 0,
- "maximum": 5
}, - "stepAdjustments": [
- {
- "action": { },
- "threshold": null
}
], - "namespace": "AWS/EC2",
- "dimensions": [
- {
- "name": null,
- "value": null
}
], - "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "isEnabled": true
}
], - "multipleMetrics": {
- "metrics": [
- {
- "name": "metric1",
- "metricName": "CPUUtilization",
- "namespace": "AWS/EC2",
- "statistic": "average",
- "extendedStatistic": "p1.5",
- "unit": "percent",
- "dimensions": [
- { }
]
}
], - "expressions": [
- {
- "name": "e1",
- "expression": "metric1+10"
}
]
}, - "target": [
- {
- "source": "spectrum",
- "policyName": "my-up-policy",
- "metricName": "CPUUtilization",
- "statistic": "average",
- "unit": "percent",
- "namespace": "AWS/EC2",
- "target": 1,
- "cooldown": 300
}
]
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "startTime": "2018-05-23T10:55:09Z",
- "frequency": "hourly",
- "cronExpression": "0 1 * * *",
- "taskType": "scale",
- "scaleTargetCapacity": 0,
- "scaleMinCapacity": 0,
- "scaleMaxCapacity": 0,
- "targetCapacity": 0,
- "MinCapacity": 0,
- "MaxCapacity": 0,
- "batchSizePercentage": 0
}
]
}, - "thirdPartiesIntegration": {
- "ecs": {
- "clusterName": "test-ecs",
- "autoScale": {
- "isEnabled": true,
- "cooldown": 300,
- "attributes": {
- "key": "the_key",
- "value": "the_value"
}, - "resourceLimits": {
- "maxMemoryGib": 1,
- "maxVcpu": 1
}, - "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": 20,
- "shouldScaleDownNonServiceTasks": true,
- "enableAutomaticAndManualHeadroom": false
}, - "batch": {
- "jobQueueNames": [
- [
- "dumpy-big-processing"
]
]
}, - "optimizeImages": {
- "shouldOptimizeEcsAmi": true,
- "performAt": "timeWindow",
- "timeWindows": [
- "Mon:03:00-Wed:02:30"
]
}
}, - "rancher": {
- "accessKey": "1",
- "secretKey": "SECRET",
- "version": 1
}, - "kubernetes": {
- "integrationMode": "pod",
- "clusterIdentifier": "test-k8s",
- "autoScale": {
- "isEnabled": true,
- "cooldown": 300,
- "down": {
- "evaluationPeriods": 5,
- "maxScaleDownPercentage": 70,
- "headroom": {
- "cpuPerUnit": null,
- "memoryPerUnit": null,
- "numOfUnits": null,
- "gpuPerUnit": null
}
}, - "labels": [
- {
- "key": null,
- "value": null
}
], - "isAutoConfig": false
}
}, - "mesosphere": {
- "apiServer": "1.2.3.4"
}, - "mlbRuntime": {
- "deploymentId": "dp-rm0f5b912345"
}, - "nomad": {
- "masterPort": 443,
- "autoScale": {
- "isEnabled": true,
- "cooldown": 180,
- "down": {
- "evaluationPeriods": 3
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "constraints": [
- {
- "key": null,
- "value": null
}
]
}, - "aclToken": 123,
- "tlsConfig": {
- "tlsEnabled": true,
- "privateKey": "PRIVATE KEY CERTIFICATE STR",
- "certificate": "PUBLIC KEY CERTIFICATE STR"
}
}, - "chef": {
- "organization": "ORGNAME",
- "chefVersion": 12.1,
- "user": "User",
- "pemKey": "Key"
}, - "rightScale": {
- "accountId": "ID",
- "refreshToken": "TOKEN",
- "region": "us-east-1"
}, - "route53": {
- "domains": [
- {
- "hostedZoneId": "Z3UFMBCGJMYLUT",
- "spotinstAccountId": "act-1234abcd",
- "recordSetType": "a",
- "recordSets": [
- { }
]
}
]
}, - "dockerSwarm": {
- "masterHost": "swarm1.swarm.com",
- "masterPort": 1234,
- "autoScale": {
- "isEnabled": "true",
- "cooldown": 300,
- "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "numOfUnits": 3
}, - "tlsConfig": {
- "tlsEnabled": true,
- "privateKey": "PRIVATE KEY CERTIFICATE STR",
- "certificate": "PUBLIC KEY CERTIFICATE STR"
}
}
}
}, - "createdAt": "2020-10-01T05:23:59.302Z",
- "updatedAt": "2020-10-01T05:23:59.302Z"
}
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:group"
}
}List all AWS Elastigroups for a Spot Account
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "67582d0c-108b-4ef7-9fdc-d39678a30844",
- "url": "/aws/ec2/group",
- "method": "GET",
- "timestamp": "2018-01-07T07:30:58.622Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group",
- "items": [
- [
- {
- "id": "sig-1234567",
- "name": "EG name",
- "description": "validation",
- "capacity": {
- "minimum": 1,
- "maximum": 1,
- "target": 1,
- "unit": "instance"
}, - "strategy": {
- "risk": 0,
- "onDemandCount": null,
- "availabilityVsCost": "balanced"
}, - "compute": {
- "instanceTypes": {
- "ondemand": "m3.large",
- "spot": [
- "c3.large m3.large"
]
}, - "availabilityZones": {
- "name": "us-west-2a",
- "subnetIds": [
- "subnet-1234567"
]
}, - "product": "Linux/UNIX",
- "launchSpecification": {
- "securityGroupIds": [
- "sg-1234567"
], - "monitoring": true,
- "imageId": "ami-987654",
- "keyPair": "keyp",
- "userData": null
}
}, - "scaling": {
- "up": {
- "policyName": "up Scaling Policy 1",
- "metricName": "CPUUtilization",
- "statistic": "maximum",
- "unit": "percent",
- "threshold": 90,
- "adjustment": 2,
- "namespace": "AWS/EC2",
- "period": 300,
- "evaluationPeriods": 3,
- "cooldown": 60
}, - "down": {
- "policyName": "down Scaling Policy 1",
- "metricName": "CPUUtilization",
- "statistic": "maximum",
- "unit": "percent",
- "threshold": 50,
- "adjustment": 2,
- "namespace": "AWS/EC2",
- "period": 300,
- "evaluationPeriods": 3,
- "cooldown": 60,
- "dimensions": [
- {
- "name": "InstanceId"
}
]
}
}, - "scheduling": {
- "tasks": [
- {
- "frequency": "weekly",
- "taskType": "backup_ami"
}
]
}, - "thirdPartiesIntegration": { },
- "createdAt": "2016-02-16T09:03:23.000Z",
- "updatedAt": "2018-01-07T00:10:30.000Z"
}, - {
- "id": "sig-897654",
- "name": "Test EG",
- "description": "Test",
- "capacity": {
- "minimum": 0,
- "maximum": 0,
- "target": 0,
- "unit": "instance"
}, - "strategy": {
- "risk": 100,
- "onDemandCount": null,
- "availabilityVsCost": "balanced"
}, - "compute": {
- "instanceTypes": {
- "ondemand": "m3.large",
- "spot": [
- "m3.large c3.large"
]
}, - "availabilityZones": {
- "name": "us-west-2b",
- "subnetIds": [
- "subnet-657493"
]
}, - "product": "Linux/UNIX",
- "launchSpecification": {
- "securityGroupIds": [
- "sg-987126"
], - "monitoring": true,
- "imageId": "ami-87236464",
- "keyPair": "PairKey",
- "userData": null
}
}, - "scaling": {
- "up": {
- "policyName": "up Scaling Policy 1",
- "metricName": "CPUUtilization",
- "statistic": "maximum",
- "unit": "percent",
- "stepAdjustments": [
- {
- "action": {
- "adjustment": "3",
- "type": "adjustment"
}, - "threshold": 30
}
], - "namespace": "AWS/EC2",
- "period": 300,
- "evaluationPeriods": 3,
- "cooldown": 60
}, - "down": {
- "policyName": "down Scaling Policy 1",
- "metricName": "CPUUtilization",
- "statistic": "maximum",
- "unit": "percent",
- "threshold": 50,
- "adjustment": 2,
- "namespace": "AWS/EC2",
- "period": 300,
- "evaluationPeriods": 3,
- "cooldown": 60,
- "dimensions": [
- {
- "name": "InstanceId"
}
]
}
}, - "scheduling": {
- "tasks": [
- {
- "frequency": "weekly",
- "taskType": "backup_ami"
}
]
}, - "thirdPartiesIntegration": { },
- "createdAt": "2016-02-16T06:35:03.000Z",
- "updatedAt": "2016-02-16T10:21:01.000Z"
}
]
], - "count": 2
}
}Describe a specific Elastigroup JSON
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| autoApplyTags | boolean Default: false Example: autoApplyTags=true Optionally update resource tags on the fly without performing a roll. |
required | object Group |
{- "group": {
- "name": "my-Elastigroup",
- "description": "This Elastigroup is used for Development",
- "region": "us-east-1",
- "capacity": {
- "target": 1,
- "minimum": 0,
- "maximum": 10
}, - "strategy": {
- "risk": 100,
- "onDemandCount": 0,
- "availabilityVsCost": "balanced",
- "fallbackToOd": true,
- "utilizeReservedInstances": false,
- "drainingTimeout": 120,
- "signals": [
- {
- "name": "INSTANCE_READY",
- "timeout": 120
}
], - "persistence": [
- {
- "shouldPersistPrivateIp": true,
- "shouldPersistRootDevice": true,
- "shouldPersistBlockDevices": true,
- "blockDevicesMode": "reattach"
}
], - "revertToSpot": {
- "performAt": "timeWindow",
- "timeWindows": [
- "Mon:03:00-Wed:02:30"
]
}, - "scalingStrategy": {
- "terminationPolicy": "default"
}
}, - "compute": {
- "elasticIps": [
- "eipalloc-9d4e16f8"
], - "privateIps": [
- "172.1.1.0"
], - "instanceTypes": {
- "ondemand": "m3.medium",
- "spot": [
- [
- "c3.large",
- "c4.large",
- "m3.large",
- "r3.large"
]
], - "preferredSpot": [
- [
- "c4.large"
]
], - "weights": [
- {
- "instanceType": "c4.large",
- "weightedCapacity": 8
}
]
}, - "subnetIds": [
- [
- "subnet-4c1d1538",
- "subnet-2791bb61",
- "subnet-703a6f58",
- "subnet-c62846fc"
]
], - "availabilityZones": [
- {
- "name": "us-west-2a",
- "subnetIds": [
- [
- "subnet-4333093a"
]
], - "placementGroupName": "string"
}
], - "preferredAvailabilityZones": [
- [
- "us-east-1a",
- "us-east-1b"
]
], - "launchSpecification": {
- "creditSpecification": {
- "cpuCredits": "unlimited"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "name": "MyTargetGroup",
- "arn": "arn:aws:elasticloadbalancing:us-west-2:922761411234:targetgroup/MyTargetGroup/1fe63217f8ff1234",
- "type": "TARGET_GROUP",
- "balancerId": "lb-123456789",
- "targetSetId": "ts-123456789",
- "azAwareness": false,
- "autoWeight": true
}
]
}, - "healthCheckType": "EC2",
- "healthCheckGracePeriod": 600,
- "healthCheckUnhealthyDurationBeforeReplacement": 60,
- "securityGroupIds": [
- [
- "sg-0dfc2c8760df6fec7"
]
], - "monitoring": false,
- "ebsOptimized": false,
- "imageId": "ami-01e24be29428c15b2",
- "keyPair": "labs-oregon",
- "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvdcz",
- "ebs": {
- "iops": 0,
- "throughput": 125,
- "volumeType": "gp2",
- "deleteOnTermination": true,
- "volumeSize": 12,
- "dynamicVolumeSize": {
- "baseSize": 50,
- "resource": "CPU",
- "sizePerResourceUnit": 20
}
}
}
], - "networkInterfaces": [
- {
- "description": "string",
- "deviceIndex": 0,
- "secondaryPrivateIpAddressCount": 0,
- "associatePublicIpAddress": true,
- "deleteOnTermination": true,
- "networkInterfaceId": "string",
- "privateIpAddresses": [
- {
- "privateIpAddress": "string",
- "primary": true
}
], - "subnetId": "string",
- "associateIpv6Address": true
}
], - "iamRole": {
- "name": "my-iamRole"
}, - "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "shutdownScript": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "metadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": "33"
}, - "cpuOptions": {
- "threadsPerCore": "1"
}, - "resourceTagSpecification": {
- "volumes": {
- "shouldTag": false
}, - "snapshots": {
- "shouldTag": true
}, - "enis": {
- "shouldTag": false
}, - "amis": {
- "shouldTag": true
}
}, - "autoHealing": true
}
}, - "scaling": {
- "up": [
- {
- "policyName": "my-up-policy",
- "metricName": "CPUUtilization",
- "statistic": "average",
- "extendedStatistic": "p1.5",
- "unit": "percent",
- "threshold": 90,
- "action": {
- "type": "updateCapacity",
- "adjustment": 1,
- "minTargetCapacity": 1,
- "target": 1,
- "minimum": 0,
- "maximum": 5
}, - "stepAdjustments": [
- {
- "action": {
- "type": "setMinTarget",
- "adjustment": 2,
- "minTargetCapacity": 3,
- "target": 3,
- "minimum": 4,
- "maximum": 10
}, - "threshold": 50
}
], - "namespace": "AWS/EC2",
- "dimensions": [
- {
- "name": "InstanceId",
- "value": "string"
}
], - "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "isEnabled": true
}
], - "down": [
- {
- "policyName": "my-down-policy",
- "metricName": "CPUUtilization",
- "statistic": "average",
- "extendedStatistic": "p1.5",
- "unit": "percent",
- "threshold": 90,
- "action": {
- "type": "updateCapacity",
- "adjustment": 1,
- "minTargetCapacity": 1,
- "target": 1,
- "minimum": 0,
- "maximum": 5
}, - "stepAdjustments": [
- {
- "action": {
- "type": "percentageAdjustment",
- "adjustment": 40,
- "maxTargetCapacity": 1,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "threshold": 10
}
], - "namespace": "AWS/EC2",
- "dimensions": [
- {
- "name": "InstanceId",
- "value": "string"
}
], - "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "isEnabled": true
}
], - "multipleMetrics": {
- "metrics": [
- {
- "name": "metric1",
- "metricName": "CPUUtilization",
- "namespace": "AWS/EC2",
- "statistic": "average",
- "extendedStatistic": "p1.5",
- "unit": "percent",
- "dimensions": [
- {
- "name": "InstanceId",
- "value": "string"
}
]
}
], - "expressions": [
- {
- "name": "e1",
- "expression": "metric1+10"
}
]
}, - "target": [
- {
- "source": "spectrum",
- "policyName": "my-up-policy",
- "metricName": "CPUUtilization",
- "statistic": "average",
- "unit": "percent",
- "namespace": "AWS/EC2",
- "target": 1,
- "cooldown": 300
}
]
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "startTime": "2018-05-23T10:55:09Z",
- "frequency": "hourly",
- "cronExpression": "0 1 * * *",
- "taskType": "scale",
- "scaleTargetCapacity": 0,
- "scaleMinCapacity": 0,
- "scaleMaxCapacity": 0,
- "targetCapacity": 0,
- "MinCapacity": 0,
- "MaxCapacity": 0,
- "batchSizePercentage": 0
}
]
}, - "thirdPartiesIntegration": {
- "ecs": {
- "clusterName": "test-ecs",
- "autoScale": {
- "isEnabled": true,
- "cooldown": 300,
- "attributes": {
- "key": "the_key",
- "value": "the_value"
}, - "resourceLimits": {
- "maxMemoryGib": 1,
- "maxVcpu": 1
}, - "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": 20,
- "shouldScaleDownNonServiceTasks": true,
- "enableAutomaticAndManualHeadroom": false
}, - "batch": {
- "jobQueueNames": [
- [
- "dumpy-big-processing"
]
]
}, - "optimizeImages": {
- "shouldOptimizeEcsAmi": true,
- "performAt": "timeWindow",
- "timeWindows": [
- "Mon:03:00-Wed:02:30"
]
}
}, - "rancher": {
- "accessKey": "1",
- "secretKey": "SECRET",
- "version": 1
}, - "kubernetes": {
- "integrationMode": "pod",
- "clusterIdentifier": "test-k8s",
- "autoScale": {
- "isEnabled": true,
- "cooldown": 300,
- "down": {
- "evaluationPeriods": 5,
- "maxScaleDownPercentage": 70,
- "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2,
- "gpuPerUnit": 2
}
}, - "labels": [
- {
- "key": "group, kops.k8s.io/instancegroup",
- "value": "microservices"
}
], - "isAutoConfig": false
}
}, - "mesosphere": {
- "apiServer": "1.2.3.4"
}, - "mlbRuntime": {
- "deploymentId": "dp-rm0f5b912345"
}, - "nomad": {
- "masterPort": 443,
- "autoScale": {
- "isEnabled": true,
- "cooldown": 180,
- "down": {
- "evaluationPeriods": 3
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "constraints": [
- {
- "key": "${node.class}",
- "value": "value"
}
]
}, - "aclToken": 123,
- "tlsConfig": {
- "tlsEnabled": true,
- "privateKey": "PRIVATE KEY CERTIFICATE STR",
- "certificate": "PUBLIC KEY CERTIFICATE STR"
}
}, - "chef": {
- "organization": "ORGNAME",
- "chefVersion": 12.1,
- "user": "User",
- "pemKey": "Key"
}, - "rightScale": {
- "accountId": "ID",
- "refreshToken": "TOKEN",
- "region": "us-east-1"
}, - "route53": {
- "domains": [
- {
- "hostedZoneId": "Z3UFMBCGJMYLUT",
- "spotinstAccountId": "act-1234abcd",
- "recordSetType": "a",
- "recordSets": [
- {
- "name": "testcname.spot.io.",
- "usePublicIp": true,
- "usePublicDns": true
}
]
}
]
}, - "dockerSwarm": {
- "masterHost": "swarm1.swarm.com",
- "masterPort": 1234,
- "autoScale": {
- "isEnabled": "true",
- "cooldown": 300,
- "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "numOfUnits": 3
}, - "tlsConfig": {
- "tlsEnabled": true,
- "privateKey": "PRIVATE KEY CERTIFICATE STR",
- "certificate": "PUBLIC KEY CERTIFICATE STR"
}
}
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "name": "my-Elastigroup",
- "description": "This Elastigroup is used for Development",
- "region": "us-east-1",
- "capacity": {
- "target": 1,
- "minimum": 0,
- "maximum": 10,
- "unit": "instance"
}, - "strategy": {
- "risk": 100,
- "onDemandCount": 0,
- "availabilityVsCost": "balanced",
- "fallbackToOd": true,
- "utilizeReservedInstances": false,
- "drainingTimeout": 120,
- "signals": [
- {
- "name": "INSTANCE_READY",
- "timeout": 120
}
], - "persistence": [
- {
- "shouldPersistPrivateIp": true,
- "shouldPersistRootDevice": true,
- "shouldPersistBlockDevices": true,
- "blockDevicesMode": "reattach"
}
], - "revertToSpot": {
- "performAt": "timeWindow",
- "timeWindows": [
- "Mon:03:00-Wed:02:30"
]
}, - "scalingStrategy": {
- "terminationPolicy": "default"
}
}, - "compute": {
- "product": "Linux/UNIX",
- "elasticIps": [
- "eipalloc-9d4e16f8"
], - "privateIps": [
- "172.1.1.0"
], - "instanceTypes": {
- "ondemand": "m3.medium",
- "spot": [
- [
- "c3.large",
- "c4.large",
- "m3.large",
- "r3.large"
]
], - "preferredSpot": [
- [
- "c4.large"
]
], - "weights": [
- {
- "instanceType": "c4.large",
- "weightedCapacity": 8
}
]
}, - "subnetIds": [
- [
- "subnet-4c1d1538",
- "subnet-2791bb61",
- "subnet-703a6f58",
- "subnet-c62846fc"
]
], - "availabilityZones": [
- {
- "name": "us-west-2a",
- "subnetIds": [
- [
- "subnet-4333093a"
]
], - "placementGroupName": "string"
}
], - "preferredAvailabilityZones": [
- [
- "us-east-1a",
- "us-east-1b"
]
], - "launchSpecification": {
- "creditSpecification": {
- "cpuCredits": "unlimited"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "name": null,
- "arn": null,
- "type": null,
- "balancerId": null,
- "targetSetId": null,
- "azAwareness": null,
- "autoWeight": null
}
]
}, - "healthCheckType": "EC2",
- "healthCheckGracePeriod": 600,
- "healthCheckUnhealthyDurationBeforeReplacement": 60,
- "securityGroupIds": [
- [
- "sg-0dfc2c8760df6fec7"
]
], - "monitoring": false,
- "ebsOptimized": false,
- "imageId": "ami-01e24be29428c15b2",
- "keyPair": "labs-oregon",
- "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvdcz",
- "ebs": {
- "iops": null,
- "throughput": null,
- "volumeType": null,
- "deleteOnTermination": null,
- "volumeSize": null,
- "dynamicVolumeSize": { }
}
}
], - "networkInterfaces": [
- {
- "description": "string",
- "deviceIndex": 0,
- "secondaryPrivateIpAddressCount": 0,
- "associatePublicIpAddress": true,
- "deleteOnTermination": true,
- "networkInterfaceId": "string",
- "privateIpAddresses": [
- { }
], - "subnetId": "string",
- "associateIpv6Address": true
}
], - "iamRole": {
- "name": "my-iamRole"
}, - "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "shutdownScript": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "John Doe"
}
], - "metadataOptions": {
- "httpTokens": "optional",
- "httpPutResponseHopLimit": "33"
}, - "cpuOptions": {
- "threadsPerCore": "1"
}, - "resourceTagSpecification": {
- "volumes": {
- "shouldTag": false
}, - "snapshots": {
- "shouldTag": true
}, - "enis": {
- "shouldTag": false
}, - "amis": {
- "shouldTag": true
}
}, - "autoHealing": true
}
}, - "scaling": {
- "up": [
- {
- "policyName": "my-up-policy",
- "metricName": "CPUUtilization",
- "statistic": "average",
- "extendedStatistic": "p1.5",
- "unit": "percent",
- "threshold": 90,
- "action": {
- "type": "updateCapacity",
- "adjustment": 1,
- "minTargetCapacity": 1,
- "target": 1,
- "minimum": 0,
- "maximum": 5
}, - "stepAdjustments": [
- {
- "action": { },
- "threshold": null
}
], - "namespace": "AWS/EC2",
- "dimensions": [
- {
- "name": null,
- "value": null
}
], - "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "isEnabled": true
}
], - "down": [
- {
- "policyName": "my-down-policy",
- "metricName": "CPUUtilization",
- "statistic": "average",
- "extendedStatistic": "p1.5",
- "unit": "percent",
- "threshold": 90,
- "action": {
- "type": "updateCapacity",
- "adjustment": 1,
- "minTargetCapacity": 1,
- "target": 1,
- "minimum": 0,
- "maximum": 5
}, - "stepAdjustments": [
- {
- "action": { },
- "threshold": null
}
], - "namespace": "AWS/EC2",
- "dimensions": [
- {
- "name": null,
- "value": null
}
], - "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "isEnabled": true
}
], - "multipleMetrics": {
- "metrics": [
- {
- "name": "metric1",
- "metricName": "CPUUtilization",
- "namespace": "AWS/EC2",
- "statistic": "average",
- "extendedStatistic": "p1.5",
- "unit": "percent",
- "dimensions": [
- { }
]
}
], - "expressions": [
- {
- "name": "e1",
- "expression": "metric1+10"
}
]
}, - "target": [
- {
- "source": "spectrum",
- "policyName": "my-up-policy",
- "metricName": "CPUUtilization",
- "statistic": "average",
- "unit": "percent",
- "namespace": "AWS/EC2",
- "target": 1,
- "cooldown": 300
}
]
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "startTime": "2018-05-23T10:55:09Z",
- "frequency": "hourly",
- "cronExpression": "0 1 * * *",
- "taskType": "scale",
- "scaleTargetCapacity": 0,
- "scaleMinCapacity": 0,
- "scaleMaxCapacity": 0,
- "targetCapacity": 0,
- "MinCapacity": 0,
- "MaxCapacity": 0,
- "batchSizePercentage": 0
}
]
}, - "thirdPartiesIntegration": {
- "ecs": {
- "clusterName": "test-ecs",
- "autoScale": {
- "isEnabled": true,
- "cooldown": 300,
- "attributes": {
- "key": "the_key",
- "value": "the_value"
}, - "resourceLimits": {
- "maxMemoryGib": 1,
- "maxVcpu": 1
}, - "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "isAutoConfig": false,
- "autoHeadroomPercentage": 20,
- "shouldScaleDownNonServiceTasks": true,
- "enableAutomaticAndManualHeadroom": false
}, - "batch": {
- "jobQueueNames": [
- [
- "dumpy-big-processing"
]
]
}, - "optimizeImages": {
- "shouldOptimizeEcsAmi": true,
- "performAt": "timeWindow",
- "timeWindows": [
- "Mon:03:00-Wed:02:30"
]
}
}, - "rancher": {
- "accessKey": "1",
- "secretKey": "SECRET",
- "version": 1
}, - "kubernetes": {
- "integrationMode": "pod",
- "clusterIdentifier": "test-k8s",
- "autoScale": {
- "isEnabled": true,
- "cooldown": 300,
- "down": {
- "evaluationPeriods": 5,
- "maxScaleDownPercentage": 70,
- "headroom": {
- "cpuPerUnit": null,
- "memoryPerUnit": null,
- "numOfUnits": null,
- "gpuPerUnit": null
}
}, - "labels": [
- {
- "key": null,
- "value": null
}
], - "isAutoConfig": false
}
}, - "mesosphere": {
- "apiServer": "1.2.3.4"
}, - "mlbRuntime": {
- "deploymentId": "dp-rm0f5b912345"
}, - "nomad": {
- "masterPort": 443,
- "autoScale": {
- "isEnabled": true,
- "cooldown": 180,
- "down": {
- "evaluationPeriods": 3
}, - "headroom": {
- "cpuPerUnit": 2048,
- "memoryPerUnit": 3,
- "numOfUnits": 2
}, - "constraints": [
- {
- "key": null,
- "value": null
}
]
}, - "aclToken": 123,
- "tlsConfig": {
- "tlsEnabled": true,
- "privateKey": "PRIVATE KEY CERTIFICATE STR",
- "certificate": "PUBLIC KEY CERTIFICATE STR"
}
}, - "chef": {
- "organization": "ORGNAME",
- "chefVersion": 12.1,
- "user": "User",
- "pemKey": "Key"
}, - "rightScale": {
- "accountId": "ID",
- "refreshToken": "TOKEN",
- "region": "us-east-1"
}, - "route53": {
- "domains": [
- {
- "hostedZoneId": "Z3UFMBCGJMYLUT",
- "spotinstAccountId": "act-1234abcd",
- "recordSetType": "a",
- "recordSets": [
- { }
]
}
]
}, - "dockerSwarm": {
- "masterHost": "swarm1.swarm.com",
- "masterPort": 1234,
- "autoScale": {
- "isEnabled": "true",
- "cooldown": 300,
- "down": {
- "evaluationPeriods": 4,
- "maxScaleDownPercentage": 20
}, - "headroom": {
- "cpuPerUnit": 1000,
- "memoryPerUnit": 2048,
- "numOfUnits": 3
}, - "tlsConfig": {
- "tlsEnabled": true,
- "privateKey": "PRIVATE KEY CERTIFICATE STR",
- "certificate": "PUBLIC KEY CERTIFICATE STR"
}
}
}
}, - "createdAt": "2020-10-01T05:23:59.302Z",
- "updatedAt": "2020-10-01T05:23:59.302Z"
}
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:group"
}
}Delete an Elastigroup AWS
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
object (AMI Dellocation Options) | |
object (Beanstalk Dellocation Options) | |
object (Stateful deallocation options) |
{- "statefulDeallocation": {
- "shouldDeleteImages": false,
- "shouldDeleteNetworkInterfaces": true,
- "shouldDeleteVolumes": false,
- "shouldDeleteSnapshots": false
}, - "beanstalk": {
- "rollbackToAsg": true
}, - "amiBackup": {
- "shouldDeleteImages": false
}
}{- "request": {
- "id": "3b750eff-3940-46b3-a309-aa2b415272fd",
- "url": "/aws/ec2/group/sig-98765",
- "method": "DELETE",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Describe a specific Elastigroup JSON
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123456789 ID of the account associated with your token |
{- "request": {
- "id": "67582d0c-108b-4ef7-9fdc-d39678a30844",
- "url": "/aws/ec2/group/sig-1234567",
- "method": "GET",
- "timestamp": "2018-01-07T07:30:58.622Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group",
- "items": [
- {
- "id": "sig-1234567",
- "name": "EG",
- "description": "validation",
- "capacity": {
- "minimum": 1,
- "maximum": 1,
- "target": 1,
- "unit": "instance"
}, - "strategy": {
- "risk": 100,
- "onDemandCount": null,
- "availabilityVsCost": "balanced",
- "lifetimePeriod": "days",
- "fallbackToOd": true,
- "persistence": { },
- "revertToSpot": {
- "performAt": "always"
}
}, - "compute": {
- "instanceTypes": {
- "ondemand": "c3.4xlarge",
- "spot": [
- "c3.2xlarge",
- "c4.2xlarge"
]
}, - "availabilityZones": {
- "name": "eu-west-1b",
- "subnetIds": [
- "eu-west-1b"
]
}, - "product": "Linux/UNIX (Amazon VPC)",
- "launchSpecification": {
- "loadBalancerNames": null,
- "loadBalancersConfig": {
- "loadBalancers": null
}, - "healthCheckGracePeriod": 300,
- "securityGroupIds": [
- "sg-1234567"
], - "monitoring": false,
- "ebsOptimized": false,
- "imageId": "ami-1234567",
- "iamRole": {
- "name": null,
- "arn": "arn:aws:iam::1234356789:instance-profile/Loader"
}, - "keyPair": "PA",
- "userData": "sldkfoisnfgodng",
- "shutdownScript": null,
- "tags": {
- "tagKey": "Env",
- "tagValue": "TEST"
}, - "tenancy": "default"
}
}, - "scaling": { },
- "scheduling": {
- "tasks": [
- {
- "frequency": "hourly",
- "taskType": "backup_ami"
}, - {
- "isEnabled": true,
- "taskType": "scale",
- "cronExpression": "55 19 * * 0-4",
- "scaleTargetCapacity": 1,
- "scaleMinCapacity": 1,
- "scaleMaxCapacity": 1
}, - {
- "groupId": "sig-12345",
- "eventType": "Scale",
- "createdAt": "2016-01-21T16:51:09.000+0000",
- "subEvents": {
- "type": "scaleUp",
- "terminatedSpots": [
- {
- "spotInstanceRequestId": "sir-029404xk"
}, - {
- "instanceId": "i-7fb4facc"
}
], - "terminatedInstances": [
- "string"
]
}
}
]
}, - "thirdPartiesIntegration": { },
- "multai": null,
- "createdAt": "2015-10-23T09:00:00.000Z",
- "updatedAt": "2018-08-01T14:11:39.000Z"
}
], - "count": 1
}
}List all stateful instances associated with the Elastigroup
| groupId required | string AWS Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "ssi-046b119c",
- "instanceId": "i-08878aad7f35d20f5",
- "privateIp": "172.31.30.122",
- "imageId": "ami-082b5a644766e0e6f",
- "state": "ACTIVE",
- "devices": [
- {
- "deviceName": "/dev/xvda",
- "volumeId": "vol-0bb1c83fb203ad686",
- "snapshotId": "snap-0a2803e5e45d63c3a"
}
], - "launchedAt": "2019-12-10T08:01:43.000Z",
- "createdAt": "2019-12-10T08:02:16.000Z"
}
], - "count": 1,
- "kind": "string"
}
}Pause a stateful instance
| groupId required | string AWS Elastigroup ID |
| statefulInstanceId required | string Stateful instance ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Resume a stateful instance
| groupId required | string AWS Elastigroup ID |
| statefulInstanceId required | string Stateful instance ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Recycle a stateful instance AWS
| groupId required | string AWS Elastigroup ID |
| statefulInstanceId required | string Stateful instance ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}De-allocate a stateful instance – delete all the resources associated with the instance (network interface, snapshots, volumes)
| groupId required | string AWS Elastigroup ID |
| statefulInstanceId required | string Stateful instance ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Create a new Stateful Elastigroup – this Elastigroup will have the same configuration and state of the imported instance.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object |
{- "statefulMigrationGroup": {
- "originalInstanceId": "i-123c53d9f152a1234",
- "shouldKeepPrivateIp": "false",
- "shouldTerminateInstance": true,
- "name": "MyNewElastigroup",
- "product": "Linux/UNIX (Amazon VPC)",
- "spotInstanceTypes": [
- "m3.large"
], - "region": "us-west-2",
- "availabilityZones": [
- {
- "name": "us-west-2b",
- "subnetIds": [
- "subnet-12345678"
]
}
]
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "smg-7f041234",
- "groupId": "sig-1ed12345",
- "state": "MIGRATE_START",
- "data": {
- "originalInstanceId": "i-0a9c53d9f15212345",
- "shouldKeepPrivateIp": false,
- "shouldTerminateInstance": true
}
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:statefulMigrationGroup"
}
}Get the current status of the import process. Possible values are:
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| statefulMigrationGroupID required | string Example: statefulMigrationGroupID=smg-7f041234 The Process ID you want to query |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "statefulMigrationId": "string",
- "groupId": "string",
- "instanceId": "string",
- "state": "string",
- "stateDescription": "string"
}
], - "count": 1,
- "kind": "string"
}
}Cancel the ongoing stateful import
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| statefulMigrationGroupID required | string Example: statefulMigrationGroupID=smg-7f041234 The Process ID you want to delete |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "string",
- "groupId": "string",
- "state": "string"
}
], - "count": 1,
- "kind": "string"
}
}Manually terminate the source stateful instance during an stateful instance import.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| statefulMigrationGroupID required | string The Process ID you want to terminate |
object |
{- "userAction": {
- "type": "terminate"
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "smg-63d3c336",
- "groupId": "sig-de019081",
- "state": "MIGRATE_TERMINATE_INSTANCE"
}
], - "count": 1,
- "kind": "string"
}
}Set termination protection for specific instance
| instanceId required | string Example: i-123456 AWS Instance ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| ttlInMinutes | integer Example: ttlInMinutes=23 Specify a TTL (in minutes) for this lock, meaning, for how long the protection will be valid for. |
{- "request": {
- "id": "ff3e1e5b-91b8-42fa-8267-b988efc7f662",
- "url": "/aws/ec2/instance/i-123456/lock",
- "method": "POST",
- "timestamp": "2015-06-29T13:01:55.060Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Remove the termination protection from specific instance
| instanceId required | string Example: i-123456 AWS Instance ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "ff3e1e5b-91b8-42fa-8267-b988efc7f662",
- "url": "/aws/ec2/instance/i-123456/unlock",
- "method": "POST",
- "timestamp": "2015-06-29T13:01:55.060Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Describes the current status of a specific Elastigroup – entailing information regarding running instance and their status
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123456789 ID of the account associated with your token |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/aws/ec2/group/sig-12345678/status",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group",
- "items": [
- {
- "spotInstanceRequestId": "sir-3thgagpn",
- "instanceId": "i-0cc289f12538e4758",
- "instanceType": "t2.micro",
- "product": "Linux/UNIX",
- "groupId": "sig-12345678",
- "availabilityZone": "us-west-2a",
- "privateIp": "172.31.28.210",
- "createdAt": "2018-06-25T11:49:00.000Z",
- "publicIp": "10.10.10.10",
- "status": "fulfilled"
}, - {
- "groupId": "sig-12345",
- "eventType": "Update",
- "createdAt": "2016-01-21T17:10:04.000+0000",
- "subEvents": {
- "type": "scaleUp",
- "newSpots": [
- {
- "spotInstanceRequestId": "sir-0294dbzt"
}, - {
- "spotInstanceRequestId": "sir-02940b7h"
}, - {
- "spotInstanceRequestId": "sir-028z1age"
}, - {
- "spotInstanceRequestId": "sir-028z456e"
}, - {
- "spotInstanceRequestId": "sir-028wg6gr"
}, - {
- "spotInstanceRequestId": "sir-0294a9v5"
}
], - "newInstances": [
- "string"
]
}
}
], - "count": 2
}
}Get historical data on events that happened in a specific Elastigroup like update, scaling activities, creation of new instances, etc.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123456789 ID of the account associated with your token |
| fromDate required | string Example: fromDate=2016-10-01 Starting date to fetch the events from |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/aws/ec2/group/sig-12345/events?fromDate=2016-10-01",
- "method": "GET",
- "timestamp": "2016-01-21T17:12:51.451Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group",
- "items": [
- [
- {
- "groupId": "sig-12345",
- "eventType": "Update",
- "createdAt": "2016-01-21T17:10:04.000+0000",
- "subEvents": {
- "type": "scaleUp",
- "newSpots": [
- {
- "spotInstanceRequestId": "sir-0294dbzt"
}, - {
- "spotInstanceRequestId": "sir-02940b7h"
}, - {
- "spotInstanceRequestId": "sir-028z1age"
}, - {
- "spotInstanceRequestId": "sir-028z456e"
}, - {
- "spotInstanceRequestId": "sir-028wg6gr"
}, - {
- "spotInstanceRequestId": "sir-0294a9v5"
}
], - "newInstances": [
- "string"
]
}
}, - {
- "groupId": "sig-12345",
- "eventType": "Update",
- "createdAt": "2016-01-21T17:10:04.000+0000",
- "subEvents": {
- "type": "scaleUp",
- "newSpots": [
- {
- "spotInstanceRequestId": "sir-0294dbzt"
}, - {
- "spotInstanceRequestId": "sir-02940b7h"
}, - {
- "spotInstanceRequestId": "sir-028z1age"
}, - {
- "spotInstanceRequestId": "sir-028z456e"
}, - {
- "spotInstanceRequestId": "sir-028wg6gr"
}, - {
- "spotInstanceRequestId": "sir-0294a9v5"
}
], - "newInstances": [
- "string"
]
}
}, - {
- "groupId": "sig-12345",
- "eventType": "Update",
- "createdAt": "2016-01-21T17:10:04.000+0000",
- "subEvents": {
- "type": "scaleUp",
- "newSpots": [
- {
- "spotInstanceRequestId": "sir-0294dbzt"
}, - {
- "spotInstanceRequestId": "sir-02940b7h"
}, - {
- "spotInstanceRequestId": "sir-028z1age"
}, - {
- "spotInstanceRequestId": "sir-028z456e"
}, - {
- "spotInstanceRequestId": "sir-028wg6gr"
}, - {
- "spotInstanceRequestId": "sir-0294a9v5"
}
], - "newInstances": [
- "string"
]
}
}, - {
- "groupId": "sig-12345",
- "eventType": "Update",
- "createdAt": "2016-01-21T17:10:04.000+0000",
- "subEvents": {
- "type": "scaleUp",
- "newSpots": [
- {
- "spotInstanceRequestId": "sir-0294dbzt"
}, - {
- "spotInstanceRequestId": "sir-02940b7h"
}, - {
- "spotInstanceRequestId": "sir-028z1age"
}, - {
- "spotInstanceRequestId": "sir-028z456e"
}, - {
- "spotInstanceRequestId": "sir-028wg6gr"
}, - {
- "spotInstanceRequestId": "sir-0294a9v5"
}
], - "newInstances": [
- "string"
]
}
}
]
], - "count": 1
}
}You can fetch a group's (Elastigroup/Ocean/Managed Instance) elastilog via the Spot API, in order to be able to consume elastilog from various tools used for log storing and analyzing. Logs have retention of 3 months back, so minimal fromDate should be up to 3 months back at runtime.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| fromDate required | string Example: fromDate=1540036800000 Epoch number that represents the date from which to collect the log (millisecond format) |
| limit | string Example: limit=i-12345678 Maximum number of lines to extract in a response. Max value allowed - 1000. Default: 500 |
| resourceId | string Example: resourceId=i-12345678 Filter extracted log entries for a specific resource id. Default: Null |
| severity | string Example: severity=ALL Severity of log entries to extract. Valid Values: ALL, INFO,DEBUG,WARN. Default: ALL |
| toDate required | string Example: toDate=1542715200000 Epoch number that represents the date until which log is collected (millisecond format) |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/aws/ec2/group/sig-123456/logs",
- "method": "GET",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group:log",
- "items": [
- [
- {
- "message": "ECS Max Capacity. ECS Autoscaler - Cannot scale up since group has reached maximum capacity",
- "severity": "WARN",
- "createdAt": "2018-11-19T14:38:34.000Z"
}, - {
- "message": "Group sig-e0a2bd7c successfully created.",
- "severity": "INFO",
- "createdAt": "2018-11-19T14:34:15.000Z"
}
]
], - "count": 2
}
}Update the capacity of an Elastigroup
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object (Capacity) |
{- "capacity": {
- "minimum": 1,
- "maximum": 10,
- "target": 2
}
}{- "request": {
- "id": "3ab3fdf7-3af3-46db-9e63-b88cfdac058c",
- "url": "/aws/ec2/group/sig-b255ac/capacity?accountId=act-567c21",
- "method": "PUT",
- "timestamp": "2018-08-20T15:31:12.730Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group:capacity",
- "items": [
- {
- "capacity": {
- "minimum": 1,
- "maximum": 10,
- "target": 2
}
}
], - "count": 1
}
}Add instances to your Elastigroup
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| adjustment | integer Example: adjustment=1 The number of instances to add to the Elastigroup |
{- "request": {
- "id": "b57207d0-3ab1-4170-8122-a3db9ac92093",
- "url": "/aws/ec2/group/sig-abcd1234/scale/up?adjustment=2",
- "method": "PUT",
- "timestamp": "2017-10-04T08:56:38.071Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:scale",
- "items": [
- {
- "newSpotRequests": [
- {
- "spotInstanceRequestId": "sir-45sr8c7n",
- "instanceId": "i-12345abcde12345",
- "availabilityZone": "us-west-2a",
- "instanceType": "m3.medium"
}, - {
- "spotInstanceRequestId": "sir-pzb8a2an",
- "instanceId": "i-abcde12345abcde",
- "availabilityZone": "us-west-2a",
- "instanceType": "m3.medium"
}
], - "newInstances": null
}
], - "count": 1
}
}Remove instances from your Elastigroup. Note - Scale Advanced expression Remove instances from your Elastigroup
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| adjustment | integer Example: adjustment=1 The number of instances to add to the Elastigroup |
{- "request": {
- "id": "ff3e1e5b-91b8-42fa-8267-b988efc7f662",
- "url": "/aws/ec2/group/sig-12345/scale/down?adjustment=1",
- "method": "PUT",
- "time": "2015-06-29T13:01:55.060Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:scale",
- "items": [
- {
- "victimSpotRequests": [
- {
- "spotInstanceRequestId": "sir-02447qg2",
- "instanceId": "i-933esr1"
}
], - "victimInstances": [
- {
- "instanceId": "i-02447t22"
}
]
}
], - "count": 1
}
}Suspend processes inside your Elastigroup
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| policyName required | string Example: policyName=Example Policy Name Policy Name of scaling policy to suspend |
object (Suspension) |
{- "suspension": {
- "ttlInMinutes": 10
}
}{- "request": {
- "id": "0bb5db74-2457-4a34-b8f3-174e6bf5578e",
- "url": "/aws/ec2/group/sig-12345/scale/suspendPolicy?accountId=act-1234567&policyName=myscalingpolicyname",
- "method": "POST",
- "timestamp": "2016-06-19T08:41:57.516Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:suspension",
- "items": [
- {
- "groupId": "sig-12345",
- "policyName": "myscalingpolicyname",
- "state": "suspended",
- "expiresAt": "2016-06-19T08:51:00:00Z"
}
], - "count": 1
}
}Suspend processes inside your Elastigroup
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| groupId | Array of strings groupId |
| suspensions | Array of objects Suspensions |
{- "groupId": [
- "sig-12345"
], - "suspensions": [
- [
- {
- "name": "AUTO_SCALE",
- "expiresAt": null
}, - {
- "name": "OUT_OF_STRATEGY",
- "expiresAt": "2018-10-03T07:23:24.000+0000"
}, - {
- "name": "PREVENTIVE_REPLACEMENT",
- "expiresAt": "2018-10-03T09:03:24.000+0000"
}, - {
- "name": "REVERT_PREFERRED",
- "expiresAt": null
}, - {
- "name": "SCHEDULING",
- "expiresAt": null
}
]
]
}{- "request": {
- "id": "0bb5db74-2457-4a34-b8f3-174e6bf5578e",
- "url": "/aws/ec2/group/sig-12345/suspension",
- "method": "POST",
- "timestamp": "2016-06-19T08:41:57.516Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:suspension",
- "items": [
- {
- "groupId": "sig-12345",
- "processes": [
- [
- "AUTO_SCALE"
]
], - "suspensions": [
- [
- {
- "name": "AUTO_SCALE",
- "expiresAt": null
}, - {
- "name": "OUT_OF_STRATEGY",
- "expiresAt": "2018-10-03T07:23:24.000+0000"
}, - {
- "name": "PREVENTIVE_REPLACEMENT",
- "expiresAt": "2018-10-03T09:03:24.000+0000"
}, - {
- "name": "REVERT_PREFERRED",
- "expiresAt": null
}, - {
- "name": "SCHEDULING",
- "expiresAt": null
}
]
]
}
], - "count": 4
}
}List all active Suspended processes for specific Elastigroup
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123456789 ID of the account associated with your token |
{- "request": {
- "id": "67582d0c-108b-4ef7-9fdc-d39678a30844",
- "url": "/aws/ec2/group/sig-12345/suspension",
- "method": "GET",
- "timestamp": "2018-01-07T07:30:58.622Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:suspension",
- "items": [
- {
- "groupId": "sig-12345",
- "processes": [
- "AUTO_SCALE"
]
}
], - "count": 1
}
}Remove active suspension from Elastigroup
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123456789 ID of the account associated with your token |
| processes | Array of strings (Processes) The list of processes to remove from suspension. Valid values are: AUTO_SCALE, AUTO_HEALING, OUT_OF_STRATEGY, PREVENTIVE_REPLACEMENT, REVERT_PREFERRED, SCHEDULING |
{- "processes": [
- [
- "AUTO_SCALE"
]
]
}{- "request": {
- "id": "848f3db7-b731-4b1b-9227-253a545e90eb",
- "url": "/aws/ec2/group/sig-12345/suspension",
- "method": "DELETE",
- "timestamp": "2018-06-21T11:54:12.513Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:suspension",
- "items": [
- {
- "group": {
- "compute": {
- "launchSpecification": {
- "metadataOptions": {
- "httpTokens": "optional"
}
}
}
}
}
], - "count": 0
}
}Suspended scaling policies inside your Elastigroup
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123456789 ID of the account associated with your token |
{- "request": {
- "id": "0bb5db74-2457-4a34-b8f3-174e6bf5578e",
- "url": "/aws/ec2/group/sig-12345/scale/suspensions?accountId=act-1234567",
- "method": "GET",
- "timestamp": "2016-06-19T08:41:57.516Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:suspension",
- "items": [
- {
- "scalePolicySuspensions": [
- {
- "groupId": "sig-12345",
- "policyName": "test",
- "state": "suspended"
}, - {
- "groupId": "sig-12345",
- "policyName": "down Scaling Policy 1",
- "state": "suspended"
}
]
}
], - "count": 2
}
}Resume suspended scaling policies inside your Elastigroup
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123456789 ID of the account associated with your token |
| policyName | string Example: policyName=policy_1 Name of the suspended scaling policy to remove from suspension |
{- "request": {
- "id": "848f3db7-b731-4b1b-9227-253a545e90eb",
- "url": "/aws/ec2/group/sig-12345/scale/resumePolicy?policyName=myscalingpolicyname",
- "method": "POST",
- "timestamp": "2018-06-21T11:54:12.513Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:suspension",
- "items": [
- { }
], - "count": 0
}
}Get financial information on a specific Elastigroup
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
| aggregationPeriod | string Example: aggregationPeriod=daily Optional. The time period over which data is aggregated. Can only be "daily". For example, the figures in each data set are per day |
| fromDate required | string Example: fromDate=2018-06-20 Data values following either a date format (YYYY-MM-DDTHH:mm:ss.SSSZ ; 2016-01-10T00:00:00.000Z) or Unix seconds Timestamp (1494751821) |
| toDate required | string Example: toDate=2018-11-20 Data values following either a date format (YYYY-MM-DDTHH:mm:ss.SSSZ ; 2016-01-10T00:00:00.000Z) or Unix seconds Timestamp (1494751821) |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/aws/ec2/group/sig-48d79900/costs?fromDate=2018-03-06&toDate=2019-02-27",
- "method": "GET",
- "timestamp": "2016-01-21T17:12:51.451Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group:stats",
- "items": [
- [
- {
- "running": {
- "value": 0,
- "unit": "hours"
}, - "savings": {
- "value": 0,
- "unit": "percentage"
}, - "costs": {
- "actual": 0,
- "potential": 0
}
}
]
], - "count": 1
}
}Get detailed financial information on a specific Elastigroup
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
| fromDate required | string Example: fromDate=2018-06-20 Data values following either a date format (YYYY-MM-DDTHH:mm:ss.SSSZ ; 2016-01-10T00:00:00.000Z) or Unix seconds Timestamp (1494751821) |
| toDate required | string Example: toDate=2018-11-20 Data values following either a date format (YYYY-MM-DDTHH:mm:ss.SSSZ ; 2016-01-10T00:00:00.000Z) or Unix seconds Timestamp (1494751821) |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/aws/ec2/group/sig-12345/costs/detailed",
- "method": "GET",
- "timestamp": "2016-01-21T17:12:51.451Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group",
- "items": [
- {
- "groupId": "sig-12345",
- "instanceId": "i-326129e1",
- "spotInstanceRequestId": null,
- "instanceType": "m3.medium",
- "availabilityZone": "us-east-1a",
- "running": {
- "value": 4,
- "unit": "hours"
}, - "savings": {
- "value": 4,
- "unit": "percentage"
}, - "costs": {
- "actual": 0.268,
- "potential": 0.268
}
}, - {
- "groupId": "sig-d56b9e37v",
- "instanceId": "i-326129e1",
- "spotInstanceRequestId": "sir-02epa938",
- "instanceType": "m3.large",
- "availabilityZone": "us-east-1a",
- "running": {
- "value": 4,
- "unit": "hours"
}, - "savings": {
- "value": 89.3233,
- "unit": "percentage"
}, - "costs": {
- "actual": 0.0568,
- "potential": 0.532
}
}
], - "count": 2
}
}Get the current instance status Possible status values - Active and Terminating
| instanceId required | string Example: i-123456 The instance ID you want to query |
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
{- "request": {
- "id": "ff3e1e5b-91b8-42fa-8267-b988efc7f662",
- "url": "/aws/ec2/instance/i-123456",
- "method": "GET",
- "timestamp": "2015-06-29T13:01:55.060Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:instance",
- "items": [
- {
- "instanceId": "i-326129e1",
- "lifeCycleState": "ACTIVE"
}
], - "count": 1
}
}Import an EC2 instance into a new Elastigroup
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| instanceId required | string Example: instanceId=i-008a13360040aa88e Enter the AWS instance Id of the instance to import |
| region required | string Example: region=us-east-2 The AWS region to create the new Elastigroup in |
object (Group) |
{- "group": {
- "name": "EG_Name",
- "spotInstanceTypes": [
- "m3.large",
- "c3.large"
]
}
}{- "request": {
- "id": "ff3e1e5b-91b8-42fa-8267-b988efc7f662",
- "url": "string",
- "method": "GET",
- "timestamp": "2015-06-29T13:01:55.060Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "string",
- "items": [
- { }
], - "count": 1
}
}Get status of a specific deployment
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/aws/ec2/group/sig-61236h9d/amiBackup",
- "method": "POST",
- "timestamp": "2016-01-21T17:12:51.451Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group:amiBackup",
- "items": true
}
}Get a list of instances with health status.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
{- "request": {
- "id": "ff3e1e5b-91b8-42fa-8267-b988efc7f662",
- "url": "/aws/ec2/group/sig-1b656b92/instanceHealthiness",
- "method": "GET",
- "timestamp": "2015-06-29T13:01:55.060Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group:instanceHealthiness",
- "items": [
- {
- "instanceId": "i-07593cd9173cd9667",
- "spotRequestId": "sir-xjag9yqp",
- "groupId": "sig-1b656b92",
- "availabilityZone": "us-west-2b",
- "lifeCycle": "SPOT",
- "healthStatus": "HEALTHY"
}
], - "count": 1
}
}Detach instances from your Elastigroup
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
| drainingTimeout | integer (Time) Draining Timeout |
| instancesToDetach | object (Instances to be detached) Instances to be detached |
| shouldDecrementTargetCapacity | boolean (Decrement target capacity criteria) Should Decrement Target Capacity Criteria |
| shouldTerminateInstances | boolean (Termination criteria) Should Terminate Instances Criteria |
{- "instancesToDetach": [
- "i-123456",
- "i-456798"
], - "shouldTerminateInstances": true,
- "shouldDecrementTargetCapacity": false,
- "drainingTimeout": 300
}{- "request": {
- "id": "0bb5db74-2457-4a34-b8f3-174e6bf5578e",
- "url": "/aws/ec2/group/sig-12345/detachInstances",
- "method": "PUT",
- "timestamp": "2016-06-19T08:41:57.516Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:detachInstances"
}
}Create a new Elastigroup – this Elastigroup will have the same configuration of the imported Autoscaling group
| accountId | string Example: accountId=act-12345 Your account ID in Spot |
| autoScalingGroupName required | string Example: autoScalingGroupName=MyASG The ASG name |
| dryRun | boolean Example: dryRun=true When |
| region required | string Example: region=us-east-1 The AWS region for the ASG |
object (Group) |
{- "group": {
- "product": "Linux/UNIX",
- "spotInstanceTypes": [
- "c3.large",
- "m4.large"
], - "name": "My Group",
- "availabilityVsCost": "balanced"
}
}{- "request": {
- "id": "ff3e1e5b-91b8-42fa-8267-b988efc7f662",
- "url": "/aws/ec2/group/autoScalingGroup/import?region=us-west-2&TESTING_ASG",
- "method": "POST",
- "timestamp": "2015-06-29T13:01:55.060Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group",
- "items": [
- {
- "id": "sig-e2927aac",
- "name": "TESTING_ASG",
- "description": "Imported from auto scaling group TESTING_ASG",
- "capacity": {
- "target": 1,
- "minimum": 0,
- "maximum": 5,
- "unit": "instance"
}, - "strategy": {
- "risk": 100,
- "drainingTimeout": 0
}, - "compute": {
- "instanceTypes": {
- "ondemand": "m3.medium",
- "spot": [
- "c3.large"
]
}, - "availabilityZones": [
- {
- "name": "us-west-2b",
- "subnetIds": "subnet-2e967065"
}
], - "product": "Linux/UNIX",
- "launchSpecification": {
- "loadBalancersConfig": {
- "loadBalancers": {
- "name": "TESTING_ASG",
- "type": "CLASSIC"
}
}
}
}, - "scaling": { },
- "createdAt": "2020-10-01T05:23:59.302Z",
- "updatedAt": "2020-10-01T05:23:59.302Z"
}
], - "count": 1
}
}Get the available spot instances types available in a specific region
| region required | string Example: region=us-east-2 The AWS region |
{- "request": {
- "id": "67582d0c-108b-4ef7-9fdc-d39678a30844",
- "url": "/aws/ec2/spotType?region=us-west-2",
- "method": "GET",
- "timestamp": "2018-01-07T07:30:58.622Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:spot:type",
- "items": [
- [
- {
- "instanceType": "hi1.4xlarge"
}, - {
- "instanceType": "r5d.4xlarge"
}, - {
- "instanceType": "r5ad.12xlarge"
}, - {
- "instanceType": "r4.4xlarge"
}, - {
- "instanceType": "m1.xlarge"
}, - {
- "instanceType": "a1.4xlarge"
}, - {
- "instanceType": "m5a.4xlarge"
}, - {
- "instanceType": "m3.large"
}, - {
- "instanceType": "x1e.4xlarge"
}, - {
- "instanceType": "m5d.4xlarge"
}, - {
- "instanceType": "m5a.24xlarge"
}, - {
- "instanceType": "m5a.large"
}, - {
- "instanceType": "r5d.8xlarge"
}, - {
- "instanceType": "m3.medium"
}, - {
- "instanceType": "p2.xlarge"
}, - {
- "instanceType": "m4.large"
}, - {
- "instanceType": "m5.24xlarge"
}, - {
- "instanceType": "r5a.4xlarge"
}, - {
- "instanceType": "c5.large"
}, - {
- "instanceType": "m5ad.xlarge"
}, - {
- "instanceType": "m5d.large"
}, - {
- "instanceType": "r5d.12xlarge"
}, - {
- "instanceType": "r5a.2xlarge"
}, - {
- "instanceType": "m3.2xlarge"
}, - {
- "instanceType": "t3a.large"
}, - {
- "instanceType": "t2.medium"
}, - {
- "instanceType": "i3.2xlarge"
}, - {
- "instanceType": "p3.2xlarge"
}, - {
- "instanceType": "cc2.8xlarge"
}, - {
- "instanceType": "i3.xlarge"
}, - {
- "instanceType": "r3.2xlarge"
}, - {
- "instanceType": "i3.8xlarge"
}, - {
- "instanceType": "c4.8xlarge"
}, - {
- "instanceType": "r5.metal"
}, - {
- "instanceType": "m4.10xlarge"
}, - {
- "instanceType": "m1.large"
}, - {
- "instanceType": "r5d.2xlarge"
}, - {
- "instanceType": "t1.micro"
}, - {
- "instanceType": "i2.4xlarge"
}, - {
- "instanceType": "r5a.24xlarge"
}, - {
- "instanceType": "z1d.2xlarge"
}, - {
- "instanceType": "r5.xlarge"
}, - {
- "instanceType": "m5ad.large"
}, - {
- "instanceType": "h1.4xlarge"
}, - {
- "instanceType": "m5d.12xlarge"
}, - {
- "instanceType": "c5.2xlarge"
}, - {
- "instanceType": "x1e.8xlarge"
}, - {
- "instanceType": "d2.8xlarge"
}, - {
- "instanceType": "r5.8xlarge"
}, - {
- "instanceType": "c3.large"
}, - {
- "instanceType": "r4.xlarge"
}, - {
- "instanceType": "m5ad.24xlarge"
}, - {
- "instanceType": "t3a.xlarge"
}, - {
- "instanceType": "d2.4xlarge"
}, - {
- "instanceType": "c5.24xlarge"
}, - {
- "instanceType": "c5.metal"
}, - {
- "instanceType": "c1.medium"
}, - {
- "instanceType": "m1.medium"
}, - {
- "instanceType": "g3.8xlarge"
}, - {
- "instanceType": "r4.2xlarge"
}, - {
- "instanceType": "i3en.6xlarge"
}, - {
- "instanceType": "t3.small"
}, - {
- "instanceType": "i3en.large"
}, - {
- "instanceType": "i3en.24xlarge"
}, - {
- "instanceType": "t2.xlarge"
}, - {
- "instanceType": "t3a.medium"
}, - {
- "instanceType": "m4.16xlarge"
}, - {
- "instanceType": "x1.32xlarge"
}, - {
- "instanceType": "r5a.12xlarge"
}, - {
- "instanceType": "c5d.4xlarge"
}, - {
- "instanceType": "i3en.12xlarge"
}, - {
- "instanceType": "c5d.large"
}, - {
- "instanceType": "g3.16xlarge"
}, - {
- "instanceType": "c3.2xlarge"
}, - {
- "instanceType": "x1e.2xlarge"
}, - {
- "instanceType": "a1.2xlarge"
}, - {
- "instanceType": "r5ad.xlarge"
}, - {
- "instanceType": "m5a.xlarge"
}, - {
- "instanceType": "t2.large"
}, - {
- "instanceType": "r5ad.large"
}, - {
- "instanceType": "i3.metal"
}, - {
- "instanceType": "t3.nano"
}, - {
- "instanceType": "r5ad.2xlarge"
}, - {
- "instanceType": "f1.16xlarge"
}, - {
- "instanceType": "h1.8xlarge"
}, - {
- "instanceType": "m5.12xlarge"
}, - {
- "instanceType": "a1.medium"
}, - {
- "instanceType": "i3en.3xlarge"
}, - {
- "instanceType": "m5d.8xlarge"
}
]
], - "count": 322
}
}The simulate instance interruption API is used for simulating a spot interruption in AWS, so that customers can verify specific applicative behaviors in case an interruption takes place. Once the interruption api is called, instances posted in the API body will be terminated in AWS, thus mocking a spot interruption.
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
| instancesToInterrupt | string A list of group's instance ids to interrupt |
{- "instancesToInterrupt": [
- "i-123456",
- "i-9876543"
]
}{- "request": {
- "id": "ff3e1e5b-91b8-42fa-8267-b988efc7f662",
- "url": "/aws/ec2/instance/interruption?accountId=act-4fb595c6",
- "method": "POST",
- "timestamp": "2015-06-29T13:01:55.060Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}The instance signal API is used for notifying Spot about the instance state, so Spot can act accordingly. Supported signals are - INSTANCE_READY – Whenever this signal is sent, Spot will register the instance to the ELB INSTANCE_READY_TO_SHUTDOWN – Whenever this signal is sent, Spot will terminate the instance after it was marked for termination. Important - You need to define the expected signals for your Elastigroup in the group configuration.
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
| instanceId | string The instance ID the signal refers to. |
| signal | string The specific signal you want to trigger. Valid Values - INSTANCE_READY, INSTANCE_READY_TO_SHUTDOWN |
{- "instanceId": "i-123456",
- "signal": "INSTANCE_READY"
}{- "request": {
- "id": "67582d0c-108b-4ef7-9fdc-d39678a30844",
- "url": "/aws/ec2/instance/signal",
- "method": "POST",
- "timestamp": "2018-01-07T07:30:58.622Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Instance Standby enables you to put an instance in Standby state , update or troubleshoot the instance, and then return the instance to service. Instances that are on standby are still part of the Elastigroup, but they don't get application traffic. Whenever instance is standby state - It will be de-registered from all the ELBs / ALBs in the Elastigroup It won't be affected from Scale down activities in the Elastigroup The instance health won't be checked, and it won't be replaced When the instance exits the Standby state - The instance will be register back to all the ELBs / ALBs that are defined in the Elastigroup It will be considered and affected from all the Elastigroup activities (helth checks, scaling, etc.)
| instanceId required | string Example: i-123456 The instance ID you want to put in standby state |
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
{- "request": {
- "id": "ff3e1e5b-91b8-42fa-8267-b988efc7f662",
- "url": "/aws/ec2/instance/i-123456/standby/enter",
- "method": "POST",
- "timestamp": "2015-06-29T13:01:55.060Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Exit standby by mode
| instanceId required | string Example: i-123456 The instance ID you want to put in standby state |
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
{- "request": {
- "id": "ff3e1e5b-91b8-42fa-8267-b988efc7f662",
- "url": "/aws/ec2/instance/i-123456/standby/exit",
- "method": "POST",
- "timestamp": "2015-06-29T13:01:55.060Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Get list of all the deployments of a specific Elastigroup and their status
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
| limit | integer Example: limit=5 Limits results |
| sort | string Example: sort=createdAt:ASC Field to sort by the results Default: createdAt:DESC |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/aws/ec2/group/sig-12345/roll?limit=5&sort=createdAt%3ADESC",
- "method": "GET",
- "timestamp": "2016-01-21T17:12:51.451Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group:roll",
- "items": [
- {
- "id": "sbgd-781c6212",
- "status": "starting",
- "progress": {
- "unit": "percent",
- "value": 0
}, - "createdAt": "2018-03-27T19:50:12.000+0000",
- "updatedAt": "2018-03-27T19:50:16.000+0000"
}, - {
- "id": "sbgd-3f127ed0",
- "status": "starting",
- "progress": {
- "unit": "percent",
- "value": 0
}, - "createdAt": "2018-03-27T19:46:22.000+0000",
- "updatedAt": "2018-03-27T19:46:35.000+0000"
}, - {
- "id": "sbgd-3ee19606",
- "status": "stopped",
- "progress": {
- "unit": "percent",
- "value": 0
}, - "createdAt": "2018-03-27T19:35:41.000+0000",
- "updatedAt": "2018-03-27T19:39:18.000+0000"
}, - {
- "id": "sbgd-cc4c44e2",
- "status": "finished",
- "progress": {
- "unit": "percent",
- "value": 100
}, - "createdAt": "2018-03-26T19:22:45.000+0000",
- "updatedAt": "2018-03-26T19:26:17.000+0000"
}
], - "count": 1
}
}Deploy your Elastigroup (triggers Blue/Green Deployment that replaces the existing instances in the Elastigroup)
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
| batchSizePercentage required | integer Indicates (in percentage) the batch size of the deployment (meaning, how many instances to replace in each batch) |
| drainingTimeout | integer >= 0 Default: 120 Indicates (in seconds) the timeout to drain the instances. Override the group value. |
| gracePeriod required | integer Indicates (in seconds) the timeout to wait until instance become healthy based on the healthCheckType |
| healthCheckType | string Enum: "ELB" "ECS_CLUSTER_INSTANCE" "TARGET_GROUP" "OPSWORKS" "NOMAD_NODE" "MULTAI_TARGET_SET" "HCS" "EC2" "NONE" Define a health check type. |
object The roll strategy |
{- "batchSizePercentage": 20,
- "gracePeriod": 300,
- "healthCheckType": "EC2",
- "drainingTimeout": 60,
- "strategy": {
- "action": "REPLACE_SERVER",
- "batchMinHealthyPercentage": 25,
- "onFailure": {
- "actionType": "DETACH_NEW",
- "shouldHandleAllBatches": true,
- "drainingTimeout": 120,
- "shouldDecrementTargetCapacity": true
}
}
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/aws/ec2/group/sig-12345/roll?accountId=act-123456",
- "method": "PUT",
- "timestamp": "2016-01-21T17:12:51.451Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group:roll",
- "items": [
- {
- "id": "sbgd-3ee19606",
- "status": "STARTING",
- "currentBatch": 1,
- "numOfBatches": 1,
- "progress": {
- "unit": "percent",
- "value": 0
}
}
], - "count": 1
}
}Stop an existing deployment
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| rollId required | string Example: sbgd-9876 The deployment ID you want to stop |
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
object (Role) |
{- "roll": {
- "status": "STOPPED"
}
}{- "request": {
- "id": "ff3e1e5b-91b8-42fa-8267-b988efc7f662",
- "url": "/aws/ec2/group/sig-12345/roll/sbgd-dfb956b4",
- "method": "PUT",
- "timestamp": "2015-06-29T13:01:55.060Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group:roll"
}
}Get status of a specific deployment
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| rollId required | string Example: sbgd-9876 The deployment ID you want to query |
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/aws/ec2/group/sig-d8489594/deployment/sbgd-3e158755/status?spotinstAccountId=act-d48178ad",
- "method": "GET",
- "timestamp": "2016-01-21T17:12:51.451Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group:roll:status",
- "items": [
- {
- "progress": {
- "unit": "percent",
- "value": 50
}, - "numberOfBatches": 2,
- "currentBatch": 1,
- "gracePeriod": 600,
- "strategyAction": "REPLACE_SERVER",
- "healthCheck": "NONE",
- "instances": [
- {
- "blue": [
- {
- "instanceId": "i-0b3f1234567890ae5",
- "lifeCycle": "spot",
- "batchNum": 1,
- "status": "RUNNING"
}
], - "green": [
- {
- "instanceId": "i-0b3f1234567890dd5",
- "lifeCycle": "spot",
- "batchNum": 1,
- "status": "RUNNING"
}
]
}, - {
- "blue": [
- {
- "instanceId": "i-0b3f1234567890aa6",
- "lifeCycle": "spot",
- "batchNum": 2,
- "status": "DETACHED"
}
], - "green": [
- {
- "instanceId": "i-0b3f1234567890dq3",
- "lifeCycle": "spot",
- "batchNum": 2,
- "status": "RUNNING"
}
]
}
]
}
], - "count": 1
}
}Apply a Detach action to a deployment
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
| rollId required | string Example: rollId=sbgd-9876 The deployment ID to call the action on |
| actionType | string (Type of action) Sets the action that will take place, Accepted values are: DETACH_OLD, DETACH_NEW |
| drainingTimeout | integer (Draining timeout criteria) Indicates (in seconds) the timeout to wait until instance are detached |
| shouldDecrementTargetCapacity | boolean (Should Decrement Target Capacity criteria) Default: true |
| shouldHandleAllBatches | boolean (Should Hnadle All Batches Criteria) Default: false Indicator if the action should apply to all batches of the deployment or only the latest batch |
{- "actionType": "DETACH_NEW",
- "shouldHandleAllBatches": true,
- "drainingTimeout": 200,
- "shouldDecrementTargetCapacity": true
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/aws/ec2/group/sig-1b656b92/roll/sbgd-aafb7671/action",
- "method": "POST",
- "timestamp": "2016-01-21T17:12:51.451Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group:roll:action",
- "items": [
- {
- "groupId": "sig-1b656b92",
- "rollId": "sbgd-aafb7671",
- "actionType": "DETACH_NEW",
- "detachedInstances": [
- "i-0b6974ad592f8d9ba"
]
}
], - "count": 1
}
}Initiate a cluster roll for an Elastigroup with ECS cluster
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object |
{- "roll": {
- "batchSizePercentage": 20,
- "comment": "This is why I deployed my cluster."
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "scr-5aaf854e",
- "status": "IN_PROGRESS",
- "currentBatch": 1,
- "numOfBatches": 5,
- "comment": "This is why I deployed my cluster.",
- "progress": {
- "unit": "percentage",
- "value": 0,
- "detailedStatus": {
- "oldInstances": [
- {
- "instanceId": "i-003a0281a24c01a20",
- "status": "REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a21",
- "status": "TO_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a22",
- "status": "COULD_NOT_BE_REPLACED"
}
]
}
}, - "groupId": "sig-43a8a5ee",
- "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}
], - "count": 1,
- "kind": "string"
}
}Update a running ECS cluster roll status
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object |
{- "roll": {
- "status": "STOPPED"
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "scr-5aaf854e",
- "status": "IN_PROGRESS",
- "currentBatch": 1,
- "numOfBatches": 5,
- "comment": "This is why I deployed my cluster.",
- "progress": {
- "unit": "percentage",
- "value": 0,
- "detailedStatus": {
- "oldInstances": [
- {
- "instanceId": "i-003a0281a24c01a20",
- "status": "REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a21",
- "status": "TO_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a22",
- "status": "COULD_NOT_BE_REPLACED"
}
]
}
}, - "groupId": "sig-43a8a5ee",
- "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}
], - "count": 1,
- "kind": "string"
}
}Get status for every ECS cluster rolls in given Elastigroup
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "scr-5aaf854e",
- "status": "IN_PROGRESS",
- "currentBatch": 1,
- "numOfBatches": 5,
- "comment": "This is why I deployed my cluster.",
- "progress": {
- "unit": "percentage",
- "value": 0,
- "detailedStatus": {
- "oldInstances": [
- {
- "instanceId": "i-003a0281a24c01a20",
- "status": "REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a21",
- "status": "TO_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a22",
- "status": "COULD_NOT_BE_REPLACED"
}
]
}
}, - "groupId": "sig-43a8a5ee",
- "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}
], - "count": 1,
- "kind": "string"
}
}Get status for specific ECS cluster rolls in given Elastigroup
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| ROLL_ID required | string The cluster roll ID you want to query |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "scr-5aaf854e",
- "status": "IN_PROGRESS",
- "currentBatch": 1,
- "numOfBatches": 5,
- "comment": "This is why I deployed my cluster.",
- "progress": {
- "unit": "percentage",
- "value": 0,
- "detailedStatus": {
- "oldInstances": [
- {
- "instanceId": "i-003a0281a24c01a20",
- "status": "REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a21",
- "status": "TO_BE_REPLACED"
}, - {
- "instanceId": "i-003a0281a24c01a22",
- "status": "COULD_NOT_BE_REPLACED"
}
]
}
}, - "groupId": "sig-43a8a5ee",
- "createdAt": "2019-03-24T15:46:09.000Z",
- "updatedAt": "2019-03-24T15:46:09.000Z"
}
], - "count": 1,
- "kind": "string"
}
}Put your Beanstslk Elastigroup into maintenance mode, before you start updating the beanstalk configuration.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Finish maintenance mode, and trigger a blue-green deployment.
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Get the group maintenance status.
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "status": "AWAIT_USER_UPDATE"
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:beanstalk:status"
}
}| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| environmentId required | string Example: environmentId=e-12345 The Beanstalk name |
| region required | string Example: region=us-east-1 The AWS region for the Beanstalk |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "name": "First Elastigroup",
- "description": "This is the first Spot Elastigroup of many",
- "capacity": {
- "minimum": 1,
- "maximum": 10,
- "target": 5
}, - "strategy": {
- "risk": 100
}, - "compute": {
- "instanceTypes": {
- "ondemand": "t2.micro",
- "spot": [
- "string"
]
}, - "availabilityZones": [
- {
- "name": "us-west-2a"
}
], - "launchSpecification": {
- "loadBalancersConfig": {
- "loadBalancers": [
- {
- "name": null,
- "arn": null,
- "type": null
}
]
}, - "healthCheckType": "EC2",
- "securityGroupIds": [
- "sg-12345"
], - "monitoring": true,
- "imageId": "ami-12345",
- "iamRole": {
- "name": "aws-elasticbeanstalk-ec2-role"
}, - "userData": "Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT01MTg5MDY1Mzc3MjIyODk4NDA3PT0iCk1JTUUtVmVyc2lvbjogMS4wCgotLT09PT09PT09PT09PT09PTUxODkwNjUzNzcyMjI4OTg0MDc9PQpDb250ZW50LVR5cGU6IHRleHQvY2xvdWQtY29uZmlnOyBjaGFyc2V0PSJ1cy1hc2NpaSIKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iY2xvdWQtY29uZmlnLnR4dCIKCiNjbG91ZC1jb25maWcKcmVwb191cGdyYWRlOiBub25lCnJlcG9fcmVsZWFzZXZlcjogMjAxNy4wOQpjbG91ZF9maW5hbF9tb2R1bGVzOgogLSBbc2NyaXB0cy11c2VyLCBhbHdheXNdCgotLT09PT09PT09PT09PT09PTUxODkwNjUzNzcyMjI4OTg0MDc9PQpDb250ZW50LVR5cGU6IHRleHQveC1zaGVsbHNjcmlwdDsgY2hhcnNldD0idXMtYXNjaWkiCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9InVzZXItZGF0YS50eHQiCgojIS9iaW4vYmFzaApleGVjID4gPih0ZWUgLWEgL3Zhci9sb2cvZWItY2ZuLWluaXQubG9nfGxvZ2dlciAtdCBbZWItY2ZuLWluaXRdIC1zIDI",
- "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
]
}
}, - "scaling": {
- "up": [
- {
- "policyName": "awseb-e-12345-stack-AWSEBCloudwatchAlarmHigh-56QPITB3WUFM",
- "metricName": "NetworkOut",
- "statistic": "average",
- "unit": "bytes",
- "threshold": 6000000,
- "namespace": "AWS/EC2",
- "source": "cloudWatch",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 360,
- "dimenstions": [
- {
- "name": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}, - "operator": "gte"
}
], - "down": [
- {
- "policyName": "awseb-e-12345-stack-AWSEBCloudwatchAlarmLow-UNGVBRKT0EHP",
- "metricName": "NetworkOut",
- "statistic": "average",
- "unit": "bytes",
- "threshold": 2000000,
- "namespace": "AWS/EC2",
- "source": "cloudWatch",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 360,
- "dimenstions": [
- {
- "name": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}, - "operator": "lte"
}
]
}, - "thirdPartiesIntegration": {
- "elasticBeanstalk": {
- "environmentId": "e-12345"
}
}
}
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:group"
}
}Re-import the beanstalk configuration
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "id": "sig-123456",
- "compute": {
- "launchSpecification": {
- "securityGroupIds": [
- "sg-b75343cf"
], - "monitoring": false,
- "imageId": "ami-3c873e5c",
- "iamRole": {
- "name": "aws-elasticbeanstalk-ec2-role"
}, - "userData": "Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT01MTg5MDY1Mzc3MjIyODk4NDA3PT0iCk1JTUUtVmVyc2lvbjogMS4wCgotLT09PT09PT09PT09PT09PTUxODkwNjUzNzcyMjI4OTg0MDc9PQpDb250ZW50LVR5cGU6IHRleHQvY2xvdWQtY29uZmlnOyBjaGFyc2V0PSJ1cy1hc2NpaSIKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iY2xvdWQtY29uZmlnLnR4dCIKCiNjbG91ZC1jb25maWcKcmVwb191cGdyYWRlOiBub25lCnJlcG9fcmVsZWFzZXZlcjogMjAxNy4wOQpjbG91ZF9maW5hbF9tb2R1bGVzOgogLSBbc2NyaXB0cy11c2VyLCBhbHdheXNdCgotLT09PT09PT09PT09PT09PTUxODkwNjUzNzcyMjI4OTg0MDc9PQpDb250ZW50LVR5cGU6IHRleHQveC1zaGVsbHNjcmlwdDsgY2hhcnNldD0idXMtYXNjaWkiCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9InVzZXItZGF0YS50eHQiCgojIS9iaW4vYmFzaApleGVjID4gPih0ZWUgLWEgL3Zhci9sb2cvZWItY2ZuLWluaXQubG9nfGxvZ2dlciAtdCBbZWItY2ZuLWluaXRdIC1zIDI",
- "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvdcz",
- "ebs": {
- "deleteOnTermination": null,
- "volumeSize": null,
- "volumeType": null
}
}
]
}
}
}
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:group"
}
}Trigger a Blue-Green deployment to your Elastigroup, this will initiate a deployment that will replace the existing instances(blue) with new ones(green).
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object |
{- "deployment": {
- "timeout": 20,
- "tags": [
- {
- "tagKey": "ver",
- "tagValue": "pink"
}
], - "deploymentGroups": [
- {
- "applicationName": "appTest",
- "deploymentGroupName": "deploymentGroupName"
}
]
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "cdbg-3ccf1234",
- "groupId": "sig-87231234",
- "state": "STARTING",
- "config": {
- "timeout": 20,
- "tags": [
- {
- "tagKey": "ver",
- "tagValue": "pink"
}
], - "deploymentGroups": [
- {
- "applicationName": "appTest",
- "deploymentGroupName": "deploymentGroupName"
}
]
}
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:group:codeDeploy:blueGreenDeployment"
}
}Get CodeDeploy Elastigroup deployment status for more information see: CodeDeploy B/G Deployment
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object |
{- "deployment": {
- "timeout": 20,
- "tags": [
- {
- "tagKey": "ver",
- "tagValue": "pink"
}
], - "deploymentGroups": [
- {
- "applicationName": "appTest",
- "deploymentGroupName": "deploymentGroupName"
}
]
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "cdbg-3ccf1234",
- "groupId": "sig-87231234",
- "state": "STARTING",
- "config": {
- "timeout": 20,
- "tags": [
- {
- "tagKey": "ver",
- "tagValue": "pink"
}
], - "deploymentGroups": [
- {
- "applicationName": "appTest",
- "deploymentGroupName": "deploymentGroupName"
}
]
}
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:group:codeDeploy:blueGreenDeployment"
}
}List all MR Scalers and their configuration.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "mrScaler": {
- "name": "my MRScaler",
- "description": "this is an MRScaler created with Spot",
- "region": "us-west-2",
- "strategy": {
- "wrapping": {
- "sourceClusterId": "c-1234"
}, - "new": {
- "releaseLabel": "emr-5.17.0",
- "numberOfRetries": 5
}, - "cloning": {
- "originClusterId": "j-38EE27G2QY02I",
- "includeSteps": false,
- "numberOfRetries": 5
}, - "provisioningTimeout": {
- "timeout": 15,
- "timeoutAction": "terminate"
}
}, - "compute": {
- "ebsRootVolumeSize": 4,
- "availabilityZones": [
- {
- "name": "us-west-2a",
- "subnetId": "subnet-3b5b3601"
}
], - "bootstrapActions": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}, - "steps": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}, - "instanceGroups": [
- {
- "masterGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "target": 1,
- "lifeCycle": "SPOT",
- "configurations": {
- "jsonConfiguration": { }
}
}, - "coreGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "capacity": {
- "minimum": null,
- "target": null,
- "maximum": null,
- "unit": null
}, - "lifeCycle": "SPOT",
- "ebsConfiguration": {
- "ebsBlockDeviceConfigs": [ ],
- "ebsOptimized": null
}, - "configurations": {
- "jsonConfiguration": { }
}
}, - "taskGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "capacity": {
- "minimum": null,
- "target": null,
- "maximum": null,
- "unit": null
}, - "lifeCycle": "SPOT",
- "ebsConfiguration": {
- "ebsBlockDeviceConfigs": [ ],
- "ebsOptimized": null
}, - "configurations": {
- "jsonConfiguration": { }
}
}
}
], - "instanceWeights": [
- {
- "instanceType": "m4.large",
- "weightedCapacity": 3
}
], - "emrManagedMasterSecurityGroup": "sg-123456789",
- "emrManagedSlaveSecurityGroup": "sg-123456789",
- "additionalMasterSecurityGroups": [
- "sg-123456789"
], - "additionalSlaveSecurityGroups": [
- "sg-123456789"
], - "serviceAccessSecurityGroup": "EMR_DefaultRole",
- "customAmiId": "ami-123456789",
- "repoUpgradeOnBoot": "SECURITY",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "someUser"
}
], - "ec2KeyName": "myEC2KeyName",
- "applications": [
- {
- "name": "Hue",
- "args": [
- "string"
], - "version": "1.0"
}
], - "configurations": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}
}, - "cluster": {
- "terminationProtected": false,
- "keepJobFlowAliveWhenNoSteps": true,
- "logUri": "s3://job-status",
- "additionalInfo": "{'test':'more information'}",
- "jobFlowRole": "EMR_EC2_DefaultRole",
- "serviceRole": "someIAMRole",
- "securityConfiguration": "testConfig"
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "instanceGroupType": "task",
- "taskType": "setCapacity",
- "cronExpression": "* 8 * 10 *",
- "targetCapacity": 2,
- "minCapacity": 2,
- "maxCapacity": 2
}
]
}, - "scaling": {
- "up": {
- "policyName": "myScaleUpPolicyName",
- "metricName": "AppsPending",
- "unit": "count",
- "threshold": 100,
- "action": {
- "type": "adjustment",
- "minTargetCapacity": 1,
- "adjustment": 2,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "adjustment": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "dimensions": [
- {
- "name": "JobFlowId"
}
], - "operator": "gte",
- "statistic": "average",
- "namespace": "AWS/ElasticMapReduce"
}, - "down": {
- "policyName": "myScaleDownPolicyName",
- "metricName": "AppsPending",
- "unit": "count",
- "threshold": 100,
- "action": {
- "type": "adjustment",
- "maxTargetCapacity": 1,
- "adjustment": 2,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "adjustment": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "dimensions": [
- {
- "name": "JobFlowId"
}
], - "operator": "lte",
- "statistic": "average",
- "namespace": "AWS/ElasticMapReduce"
}
}, - "terminationPolicies": [
- {
- "statements": [
- {
- "namespace": "AWS/ElasticMapReduce",
- "metricName": "AppsRunning",
- "statistic": "sum",
- "unit": "count",
- "threshold": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "operator": "gte"
}
]
}
]
}, - "createdAt": "2018-10-10T10:50:29.000+0000",
- "updatedAt": "2018-11-01T10:50:29.000+0000"
}
], - "count": 1,
- "kind": "spotinst:aws:emr:mrScaler"
}
}Create a new EMR cluster.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object |
{- "mrScaler": {
- "name": "my MRScaler",
- "description": "this is an MRScaler created with Spot",
- "region": "us-west-2",
- "strategy": {
- "wrapping": {
- "sourceClusterId": "c-1234"
}, - "new": {
- "releaseLabel": "emr-5.17.0",
- "numberOfRetries": 5
}, - "cloning": {
- "originClusterId": "j-38EE27G2QY02I",
- "includeSteps": false,
- "numberOfRetries": 5
}, - "provisioningTimeout": {
- "timeout": 15,
- "timeoutAction": "terminate"
}
}, - "compute": {
- "ebsRootVolumeSize": 4,
- "availabilityZones": [
- {
- "name": "us-west-2a",
- "subnetId": "subnet-3b5b3601"
}
], - "bootstrapActions": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}, - "steps": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}, - "instanceGroups": [
- {
- "masterGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "target": 1,
- "lifeCycle": "SPOT",
- "configurations": {
- "jsonConfiguration": {
- "classification": "mapred-site",
- "properties": {
- "mapred.tasktracker.map.tasks.maximum": 2
}, - "configuartions": [
- {
- "classification": null,
- "properties": { }
}
]
}
}
}, - "coreGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "capacity": {
- "minimum": 1,
- "target": 5,
- "maximum": 10,
- "unit": "instance"
}, - "lifeCycle": "SPOT",
- "ebsConfiguration": {
- "ebsBlockDeviceConfigs": [
- {
- "volumeSpecification": {
- "volumeType": null,
- "dynamicVolumeSize": null,
- "sizeInGB": null,
- "iops": null
}, - "volumesPerInstance": 1
}
], - "ebsOptimized": true
}, - "configurations": {
- "jsonConfiguration": {
- "classification": "mapred-site",
- "properties": {
- "mapred.tasktracker.map.tasks.maximum": 2
}, - "configuartions": [
- {
- "classification": null,
- "properties": { }
}
]
}
}
}, - "taskGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "capacity": {
- "minimum": 1,
- "target": 5,
- "maximum": 10,
- "unit": "instance"
}, - "lifeCycle": "SPOT",
- "ebsConfiguration": {
- "ebsBlockDeviceConfigs": [
- {
- "volumeSpecification": {
- "volumeType": null,
- "dynamicVolumeSize": null,
- "sizeInGB": null,
- "iops": null
}, - "volumesPerInstance": 1
}
], - "ebsOptimized": true
}, - "configurations": {
- "jsonConfiguration": {
- "classification": "mapred-site",
- "properties": {
- "mapred.tasktracker.map.tasks.maximum": 2
}, - "configuartions": [
- {
- "classification": null,
- "properties": { }
}
]
}
}
}
}
], - "instanceWeights": [
- {
- "instanceType": "m4.large",
- "weightedCapacity": 3
}
], - "emrManagedMasterSecurityGroup": "sg-123456789",
- "emrManagedSlaveSecurityGroup": "sg-123456789",
- "additionalMasterSecurityGroups": [
- "sg-123456789"
], - "additionalSlaveSecurityGroups": [
- "sg-123456789"
], - "serviceAccessSecurityGroup": "EMR_DefaultRole",
- "customAmiId": "ami-123456789",
- "repoUpgradeOnBoot": "SECURITY",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "someUser"
}
], - "ec2KeyName": "myEC2KeyName",
- "applications": [
- {
- "name": "Hue",
- "args": [
- "string"
], - "version": "1.0"
}
], - "configurations": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}
}, - "cluster": {
- "terminationProtected": false,
- "keepJobFlowAliveWhenNoSteps": true,
- "logUri": "s3://job-status",
- "additionalInfo": "{'test':'more information'}",
- "jobFlowRole": "EMR_EC2_DefaultRole",
- "serviceRole": "someIAMRole",
- "securityConfiguration": "testConfig"
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "instanceGroupType": "task",
- "taskType": "setCapacity",
- "cronExpression": "* 8 * 10 *",
- "targetCapacity": 2,
- "minCapacity": 2,
- "maxCapacity": 2
}
]
}, - "scaling": {
- "up": {
- "policyName": "myScaleUpPolicyName",
- "metricName": "AppsPending",
- "unit": "count",
- "threshold": 100,
- "action": {
- "type": "adjustment",
- "minTargetCapacity": 1,
- "adjustment": 2,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "adjustment": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "dimensions": [
- {
- "name": "JobFlowId"
}
], - "operator": "gte",
- "statistic": "average",
- "namespace": "AWS/ElasticMapReduce"
}, - "down": {
- "policyName": "myScaleDownPolicyName",
- "metricName": "AppsPending",
- "unit": "count",
- "threshold": 100,
- "action": {
- "type": "adjustment",
- "maxTargetCapacity": 1,
- "adjustment": 2,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "adjustment": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "dimensions": [
- {
- "name": "JobFlowId"
}
], - "operator": "lte",
- "statistic": "average",
- "namespace": "AWS/ElasticMapReduce"
}
}, - "terminationPolicies": [
- {
- "statements": [
- {
- "namespace": "AWS/ElasticMapReduce",
- "metricName": "AppsRunning",
- "statistic": "sum",
- "unit": "count",
- "threshold": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "operator": "gte"
}
]
}
]
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "mrScaler": {
- "name": "my MRScaler",
- "description": "this is an MRScaler created with Spot",
- "region": "us-west-2",
- "strategy": {
- "wrapping": {
- "sourceClusterId": "c-1234"
}, - "new": {
- "releaseLabel": "emr-5.17.0",
- "numberOfRetries": 5
}, - "cloning": {
- "originClusterId": "j-38EE27G2QY02I",
- "includeSteps": false,
- "numberOfRetries": 5
}, - "provisioningTimeout": {
- "timeout": 15,
- "timeoutAction": "terminate"
}
}, - "compute": {
- "ebsRootVolumeSize": 4,
- "availabilityZones": [
- {
- "name": "us-west-2a",
- "subnetId": "subnet-3b5b3601"
}
], - "bootstrapActions": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}, - "steps": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}, - "instanceGroups": [
- {
- "masterGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "target": 1,
- "lifeCycle": "SPOT",
- "configurations": {
- "jsonConfiguration": { }
}
}, - "coreGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "capacity": {
- "minimum": null,
- "target": null,
- "maximum": null,
- "unit": null
}, - "lifeCycle": "SPOT",
- "ebsConfiguration": {
- "ebsBlockDeviceConfigs": [ ],
- "ebsOptimized": null
}, - "configurations": {
- "jsonConfiguration": { }
}
}, - "taskGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "capacity": {
- "minimum": null,
- "target": null,
- "maximum": null,
- "unit": null
}, - "lifeCycle": "SPOT",
- "ebsConfiguration": {
- "ebsBlockDeviceConfigs": [ ],
- "ebsOptimized": null
}, - "configurations": {
- "jsonConfiguration": { }
}
}
}
], - "instanceWeights": [
- {
- "instanceType": "m4.large",
- "weightedCapacity": 3
}
], - "emrManagedMasterSecurityGroup": "sg-123456789",
- "emrManagedSlaveSecurityGroup": "sg-123456789",
- "additionalMasterSecurityGroups": [
- "sg-123456789"
], - "additionalSlaveSecurityGroups": [
- "sg-123456789"
], - "serviceAccessSecurityGroup": "EMR_DefaultRole",
- "customAmiId": "ami-123456789",
- "repoUpgradeOnBoot": "SECURITY",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "someUser"
}
], - "ec2KeyName": "myEC2KeyName",
- "applications": [
- {
- "name": "Hue",
- "args": [
- "string"
], - "version": "1.0"
}
], - "configurations": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}
}, - "cluster": {
- "terminationProtected": false,
- "keepJobFlowAliveWhenNoSteps": true,
- "logUri": "s3://job-status",
- "additionalInfo": "{'test':'more information'}",
- "jobFlowRole": "EMR_EC2_DefaultRole",
- "serviceRole": "someIAMRole",
- "securityConfiguration": "testConfig"
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "instanceGroupType": "task",
- "taskType": "setCapacity",
- "cronExpression": "* 8 * 10 *",
- "targetCapacity": 2,
- "minCapacity": 2,
- "maxCapacity": 2
}
]
}, - "scaling": {
- "up": {
- "policyName": "myScaleUpPolicyName",
- "metricName": "AppsPending",
- "unit": "count",
- "threshold": 100,
- "action": {
- "type": "adjustment",
- "minTargetCapacity": 1,
- "adjustment": 2,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "adjustment": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "dimensions": [
- {
- "name": "JobFlowId"
}
], - "operator": "gte",
- "statistic": "average",
- "namespace": "AWS/ElasticMapReduce"
}, - "down": {
- "policyName": "myScaleDownPolicyName",
- "metricName": "AppsPending",
- "unit": "count",
- "threshold": 100,
- "action": {
- "type": "adjustment",
- "maxTargetCapacity": 1,
- "adjustment": 2,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "adjustment": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "dimensions": [
- {
- "name": "JobFlowId"
}
], - "operator": "lte",
- "statistic": "average",
- "namespace": "AWS/ElasticMapReduce"
}
}, - "terminationPolicies": [
- {
- "statements": [
- {
- "namespace": "AWS/ElasticMapReduce",
- "metricName": "AppsRunning",
- "statistic": "sum",
- "unit": "count",
- "threshold": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "operator": "gte"
}
]
}
]
}
}
], - "count": 1,
- "kind": "spotinst:aws:emr:mrScaler"
}
}mrScaler – required will have the same configuration as in createMrScaler with one exception: we will only work with strategy of “new”, no “clone”/”warp” will be allowed.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object |
| name | string |
{- "name": "GuyEmrOperatorTest",
- "mrScaler": {
- "name": "my MRScaler",
- "description": "this is an MRScaler created with Spot",
- "region": "us-west-2",
- "strategy": {
- "wrapping": {
- "sourceClusterId": "c-1234"
}, - "new": {
- "releaseLabel": "emr-5.17.0",
- "numberOfRetries": 5
}, - "cloning": {
- "originClusterId": "j-38EE27G2QY02I",
- "includeSteps": false,
- "numberOfRetries": 5
}, - "provisioningTimeout": {
- "timeout": 15,
- "timeoutAction": "terminate"
}
}, - "compute": {
- "ebsRootVolumeSize": 4,
- "availabilityZones": [
- {
- "name": "us-west-2a",
- "subnetId": "subnet-3b5b3601"
}
], - "bootstrapActions": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}, - "steps": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}, - "instanceGroups": [
- {
- "masterGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "target": 1,
- "lifeCycle": "SPOT",
- "configurations": {
- "jsonConfiguration": {
- "classification": "mapred-site",
- "properties": {
- "mapred.tasktracker.map.tasks.maximum": 2
}, - "configuartions": [
- {
- "classification": null,
- "properties": { }
}
]
}
}
}, - "coreGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "capacity": {
- "minimum": 1,
- "target": 5,
- "maximum": 10,
- "unit": "instance"
}, - "lifeCycle": "SPOT",
- "ebsConfiguration": {
- "ebsBlockDeviceConfigs": [
- {
- "volumeSpecification": {
- "volumeType": null,
- "dynamicVolumeSize": null,
- "sizeInGB": null,
- "iops": null
}, - "volumesPerInstance": 1
}
], - "ebsOptimized": true
}, - "configurations": {
- "jsonConfiguration": {
- "classification": "mapred-site",
- "properties": {
- "mapred.tasktracker.map.tasks.maximum": 2
}, - "configuartions": [
- {
- "classification": null,
- "properties": { }
}
]
}
}
}, - "taskGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "capacity": {
- "minimum": 1,
- "target": 5,
- "maximum": 10,
- "unit": "instance"
}, - "lifeCycle": "SPOT",
- "ebsConfiguration": {
- "ebsBlockDeviceConfigs": [
- {
- "volumeSpecification": {
- "volumeType": null,
- "dynamicVolumeSize": null,
- "sizeInGB": null,
- "iops": null
}, - "volumesPerInstance": 1
}
], - "ebsOptimized": true
}, - "configurations": {
- "jsonConfiguration": {
- "classification": "mapred-site",
- "properties": {
- "mapred.tasktracker.map.tasks.maximum": 2
}, - "configuartions": [
- {
- "classification": null,
- "properties": { }
}
]
}
}
}
}
], - "instanceWeights": [
- {
- "instanceType": "m4.large",
- "weightedCapacity": 3
}
], - "emrManagedMasterSecurityGroup": "sg-123456789",
- "emrManagedSlaveSecurityGroup": "sg-123456789",
- "additionalMasterSecurityGroups": [
- "sg-123456789"
], - "additionalSlaveSecurityGroups": [
- "sg-123456789"
], - "serviceAccessSecurityGroup": "EMR_DefaultRole",
- "customAmiId": "ami-123456789",
- "repoUpgradeOnBoot": "SECURITY",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "someUser"
}
], - "ec2KeyName": "myEC2KeyName",
- "applications": [
- {
- "name": "Hue",
- "args": [
- "string"
], - "version": "1.0"
}
], - "configurations": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}
}, - "cluster": {
- "terminationProtected": false,
- "keepJobFlowAliveWhenNoSteps": true,
- "logUri": "s3://job-status",
- "additionalInfo": "{'test':'more information'}",
- "jobFlowRole": "EMR_EC2_DefaultRole",
- "serviceRole": "someIAMRole",
- "securityConfiguration": "testConfig"
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "instanceGroupType": "task",
- "taskType": "setCapacity",
- "cronExpression": "* 8 * 10 *",
- "targetCapacity": 2,
- "minCapacity": 2,
- "maxCapacity": 2
}
]
}, - "scaling": {
- "up": {
- "policyName": "myScaleUpPolicyName",
- "metricName": "AppsPending",
- "unit": "count",
- "threshold": 100,
- "action": {
- "type": "adjustment",
- "minTargetCapacity": 1,
- "adjustment": 2,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "adjustment": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "dimensions": [
- {
- "name": "JobFlowId"
}
], - "operator": "gte",
- "statistic": "average",
- "namespace": "AWS/ElasticMapReduce"
}, - "down": {
- "policyName": "myScaleDownPolicyName",
- "metricName": "AppsPending",
- "unit": "count",
- "threshold": 100,
- "action": {
- "type": "adjustment",
- "maxTargetCapacity": 1,
- "adjustment": 2,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "adjustment": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "dimensions": [
- {
- "name": "JobFlowId"
}
], - "operator": "lte",
- "statistic": "average",
- "namespace": "AWS/ElasticMapReduce"
}
}, - "terminationPolicies": [
- {
- "statements": [
- {
- "namespace": "AWS/ElasticMapReduce",
- "metricName": "AppsRunning",
- "statistic": "sum",
- "unit": "count",
- "threshold": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "operator": "gte"
}
]
}
]
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "mrScaler": {
- "name": "my MRScaler",
- "description": "this is an MRScaler created with Spot",
- "region": "us-west-2",
- "strategy": {
- "wrapping": {
- "sourceClusterId": "c-1234"
}, - "new": {
- "releaseLabel": "emr-5.17.0",
- "numberOfRetries": 5
}, - "cloning": {
- "originClusterId": "j-38EE27G2QY02I",
- "includeSteps": false,
- "numberOfRetries": 5
}, - "provisioningTimeout": {
- "timeout": 15,
- "timeoutAction": "terminate"
}
}, - "compute": {
- "ebsRootVolumeSize": 4,
- "availabilityZones": [
- {
- "name": "us-west-2a",
- "subnetId": "subnet-3b5b3601"
}
], - "bootstrapActions": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}, - "steps": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}, - "instanceGroups": [
- {
- "masterGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "target": 1,
- "lifeCycle": "SPOT",
- "configurations": {
- "jsonConfiguration": { }
}
}, - "coreGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "capacity": {
- "minimum": null,
- "target": null,
- "maximum": null,
- "unit": null
}, - "lifeCycle": "SPOT",
- "ebsConfiguration": {
- "ebsBlockDeviceConfigs": [ ],
- "ebsOptimized": null
}, - "configurations": {
- "jsonConfiguration": { }
}
}, - "taskGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "capacity": {
- "minimum": null,
- "target": null,
- "maximum": null,
- "unit": null
}, - "lifeCycle": "SPOT",
- "ebsConfiguration": {
- "ebsBlockDeviceConfigs": [ ],
- "ebsOptimized": null
}, - "configurations": {
- "jsonConfiguration": { }
}
}
}
], - "instanceWeights": [
- {
- "instanceType": "m4.large",
- "weightedCapacity": 3
}
], - "emrManagedMasterSecurityGroup": "sg-123456789",
- "emrManagedSlaveSecurityGroup": "sg-123456789",
- "additionalMasterSecurityGroups": [
- "sg-123456789"
], - "additionalSlaveSecurityGroups": [
- "sg-123456789"
], - "serviceAccessSecurityGroup": "EMR_DefaultRole",
- "customAmiId": "ami-123456789",
- "repoUpgradeOnBoot": "SECURITY",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "someUser"
}
], - "ec2KeyName": "myEC2KeyName",
- "applications": [
- {
- "name": "Hue",
- "args": [
- "string"
], - "version": "1.0"
}
], - "configurations": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}
}, - "cluster": {
- "terminationProtected": false,
- "keepJobFlowAliveWhenNoSteps": true,
- "logUri": "s3://job-status",
- "additionalInfo": "{'test':'more information'}",
- "jobFlowRole": "EMR_EC2_DefaultRole",
- "serviceRole": "someIAMRole",
- "securityConfiguration": "testConfig"
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "instanceGroupType": "task",
- "taskType": "setCapacity",
- "cronExpression": "* 8 * 10 *",
- "targetCapacity": 2,
- "minCapacity": 2,
- "maxCapacity": 2
}
]
}, - "scaling": {
- "up": {
- "policyName": "myScaleUpPolicyName",
- "metricName": "AppsPending",
- "unit": "count",
- "threshold": 100,
- "action": {
- "type": "adjustment",
- "minTargetCapacity": 1,
- "adjustment": 2,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "adjustment": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "dimensions": [
- {
- "name": "JobFlowId"
}
], - "operator": "gte",
- "statistic": "average",
- "namespace": "AWS/ElasticMapReduce"
}, - "down": {
- "policyName": "myScaleDownPolicyName",
- "metricName": "AppsPending",
- "unit": "count",
- "threshold": 100,
- "action": {
- "type": "adjustment",
- "maxTargetCapacity": 1,
- "adjustment": 2,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "adjustment": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "dimensions": [
- {
- "name": "JobFlowId"
}
], - "operator": "lte",
- "statistic": "average",
- "namespace": "AWS/ElasticMapReduce"
}
}, - "terminationPolicies": [
- {
- "statements": [
- {
- "namespace": "AWS/ElasticMapReduce",
- "metricName": "AppsRunning",
- "statistic": "sum",
- "unit": "count",
- "threshold": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "operator": "gte"
}
]
}
]
}
}
], - "count": 1,
- "kind": "spotinst:aws:emr:mrScaler"
}
}Get a description of a specific MR Scaler and its configuration.
| mrScalerId required | string Example: simrs-12223 The MRScaler ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "mrScaler": {
- "name": "my MRScaler",
- "description": "this is an MRScaler created with Spot",
- "region": "us-west-2",
- "strategy": {
- "wrapping": {
- "sourceClusterId": "c-1234"
}, - "new": {
- "releaseLabel": "emr-5.17.0",
- "numberOfRetries": 5
}, - "cloning": {
- "originClusterId": "j-38EE27G2QY02I",
- "includeSteps": false,
- "numberOfRetries": 5
}, - "provisioningTimeout": {
- "timeout": 15,
- "timeoutAction": "terminate"
}
}, - "compute": {
- "ebsRootVolumeSize": 4,
- "availabilityZones": [
- {
- "name": "us-west-2a",
- "subnetId": "subnet-3b5b3601"
}
], - "bootstrapActions": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}, - "steps": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}, - "instanceGroups": [
- {
- "masterGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "target": 1,
- "lifeCycle": "SPOT",
- "configurations": {
- "jsonConfiguration": { }
}
}, - "coreGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "capacity": {
- "minimum": null,
- "target": null,
- "maximum": null,
- "unit": null
}, - "lifeCycle": "SPOT",
- "ebsConfiguration": {
- "ebsBlockDeviceConfigs": [ ],
- "ebsOptimized": null
}, - "configurations": {
- "jsonConfiguration": { }
}
}, - "taskGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "capacity": {
- "minimum": null,
- "target": null,
- "maximum": null,
- "unit": null
}, - "lifeCycle": "SPOT",
- "ebsConfiguration": {
- "ebsBlockDeviceConfigs": [ ],
- "ebsOptimized": null
}, - "configurations": {
- "jsonConfiguration": { }
}
}
}
], - "instanceWeights": [
- {
- "instanceType": "m4.large",
- "weightedCapacity": 3
}
], - "emrManagedMasterSecurityGroup": "sg-123456789",
- "emrManagedSlaveSecurityGroup": "sg-123456789",
- "additionalMasterSecurityGroups": [
- "sg-123456789"
], - "additionalSlaveSecurityGroups": [
- "sg-123456789"
], - "serviceAccessSecurityGroup": "EMR_DefaultRole",
- "customAmiId": "ami-123456789",
- "repoUpgradeOnBoot": "SECURITY",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "someUser"
}
], - "ec2KeyName": "myEC2KeyName",
- "applications": [
- {
- "name": "Hue",
- "args": [
- "string"
], - "version": "1.0"
}
], - "configurations": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}
}, - "cluster": {
- "terminationProtected": false,
- "keepJobFlowAliveWhenNoSteps": true,
- "logUri": "s3://job-status",
- "additionalInfo": "{'test':'more information'}",
- "jobFlowRole": "EMR_EC2_DefaultRole",
- "serviceRole": "someIAMRole",
- "securityConfiguration": "testConfig"
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "instanceGroupType": "task",
- "taskType": "setCapacity",
- "cronExpression": "* 8 * 10 *",
- "targetCapacity": 2,
- "minCapacity": 2,
- "maxCapacity": 2
}
]
}, - "scaling": {
- "up": {
- "policyName": "myScaleUpPolicyName",
- "metricName": "AppsPending",
- "unit": "count",
- "threshold": 100,
- "action": {
- "type": "adjustment",
- "minTargetCapacity": 1,
- "adjustment": 2,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "adjustment": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "dimensions": [
- {
- "name": "JobFlowId"
}
], - "operator": "gte",
- "statistic": "average",
- "namespace": "AWS/ElasticMapReduce"
}, - "down": {
- "policyName": "myScaleDownPolicyName",
- "metricName": "AppsPending",
- "unit": "count",
- "threshold": 100,
- "action": {
- "type": "adjustment",
- "maxTargetCapacity": 1,
- "adjustment": 2,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "adjustment": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "dimensions": [
- {
- "name": "JobFlowId"
}
], - "operator": "lte",
- "statistic": "average",
- "namespace": "AWS/ElasticMapReduce"
}
}, - "terminationPolicies": [
- {
- "statements": [
- {
- "namespace": "AWS/ElasticMapReduce",
- "metricName": "AppsRunning",
- "statistic": "sum",
- "unit": "count",
- "threshold": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "operator": "gte"
}
]
}
]
}, - "createdAt": "2018-10-10T10:50:29.000+0000",
- "updatedAt": "2018-11-01T10:50:29.000+0000"
}
], - "count": 1,
- "kind": "spotinst:aws:emr:mrScaler"
}
}Update an MR Scaler. Partial updating is supported.
| mrScalerId required | string Example: simrs-12223 The MRScaler ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object MR Scaler Object - Update Task Capacity |
{- "mrScaler": {
- "compute": {
- "instanceGroups": {
- "taskGroup": {
- "capacity": {
- "maximum": 0,
- "target": 0,
- "minimum": 0
}
}
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "mrScaler": {
- "name": "my MRScaler",
- "description": "this is an MRScaler created with Spot",
- "region": "us-west-2",
- "strategy": {
- "wrapping": {
- "sourceClusterId": "c-1234"
}, - "new": {
- "releaseLabel": "emr-5.17.0",
- "numberOfRetries": 5
}, - "cloning": {
- "originClusterId": "j-38EE27G2QY02I",
- "includeSteps": false,
- "numberOfRetries": 5
}, - "provisioningTimeout": {
- "timeout": 15,
- "timeoutAction": "terminate"
}
}, - "compute": {
- "ebsRootVolumeSize": 4,
- "availabilityZones": [
- {
- "name": "us-west-2a",
- "subnetId": "subnet-3b5b3601"
}
], - "bootstrapActions": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}, - "steps": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}, - "instanceGroups": [
- {
- "masterGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "target": 1,
- "lifeCycle": "SPOT",
- "configurations": {
- "jsonConfiguration": { }
}
}, - "coreGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "capacity": {
- "minimum": null,
- "target": null,
- "maximum": null,
- "unit": null
}, - "lifeCycle": "SPOT",
- "ebsConfiguration": {
- "ebsBlockDeviceConfigs": [ ],
- "ebsOptimized": null
}, - "configurations": {
- "jsonConfiguration": { }
}
}, - "taskGroup": {
- "instanceTypes": [
- "m3.xlarge",
- "m4.large",
- "m4.xlarge",
- "m4.2xlarge"
], - "capacity": {
- "minimum": null,
- "target": null,
- "maximum": null,
- "unit": null
}, - "lifeCycle": "SPOT",
- "ebsConfiguration": {
- "ebsBlockDeviceConfigs": [ ],
- "ebsOptimized": null
}, - "configurations": {
- "jsonConfiguration": { }
}
}
}
], - "instanceWeights": [
- {
- "instanceType": "m4.large",
- "weightedCapacity": 3
}
], - "emrManagedMasterSecurityGroup": "sg-123456789",
- "emrManagedSlaveSecurityGroup": "sg-123456789",
- "additionalMasterSecurityGroups": [
- "sg-123456789"
], - "additionalSlaveSecurityGroups": [
- "sg-123456789"
], - "serviceAccessSecurityGroup": "EMR_DefaultRole",
- "customAmiId": "ami-123456789",
- "repoUpgradeOnBoot": "SECURITY",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "someUser"
}
], - "ec2KeyName": "myEC2KeyName",
- "applications": [
- {
- "name": "Hue",
- "args": [
- "string"
], - "version": "1.0"
}
], - "configurations": {
- "file": {
- "bucket": "emr-test",
- "key": "MyFile.json"
}
}
}, - "cluster": {
- "terminationProtected": false,
- "keepJobFlowAliveWhenNoSteps": true,
- "logUri": "s3://job-status",
- "additionalInfo": "{'test':'more information'}",
- "jobFlowRole": "EMR_EC2_DefaultRole",
- "serviceRole": "someIAMRole",
- "securityConfiguration": "testConfig"
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "instanceGroupType": "task",
- "taskType": "setCapacity",
- "cronExpression": "* 8 * 10 *",
- "targetCapacity": 2,
- "minCapacity": 2,
- "maxCapacity": 2
}
]
}, - "scaling": {
- "up": {
- "policyName": "myScaleUpPolicyName",
- "metricName": "AppsPending",
- "unit": "count",
- "threshold": 100,
- "action": {
- "type": "adjustment",
- "minTargetCapacity": 1,
- "adjustment": 2,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "adjustment": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "dimensions": [
- {
- "name": "JobFlowId"
}
], - "operator": "gte",
- "statistic": "average",
- "namespace": "AWS/ElasticMapReduce"
}, - "down": {
- "policyName": "myScaleDownPolicyName",
- "metricName": "AppsPending",
- "unit": "count",
- "threshold": 100,
- "action": {
- "type": "adjustment",
- "maxTargetCapacity": 1,
- "adjustment": 2,
- "target": 2,
- "minimum": 1,
- "maximum": 5
}, - "adjustment": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "dimensions": [
- {
- "name": "JobFlowId"
}
], - "operator": "lte",
- "statistic": "average",
- "namespace": "AWS/ElasticMapReduce"
}
}, - "terminationPolicies": [
- {
- "statements": [
- {
- "namespace": "AWS/ElasticMapReduce",
- "metricName": "AppsRunning",
- "statistic": "sum",
- "unit": "count",
- "threshold": 2,
- "period": 300,
- "evaluationPeriods": 1,
- "operator": "gte"
}
]
}
]
}, - "createdAt": "2018-10-10T10:50:29.000+0000",
- "updatedAt": "2018-11-01T10:50:29.000+0000"
}
], - "count": 1,
- "kind": "spotinst:aws:emr:mrScaler"
}
}Delete an MR Scaler
| mrScalerId required | string Example: simrs-12223 The MRScaler ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Get a list of all instances and instances groups in the cluster
| mrScalerId required | string Example: simrs-12223 The MRScaler ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "instanceId": "i-asdfjk3989",
- "instanceGroupId": "ig-asdfjl2",
- "instanceGroupRole": "MASTER",
- "instanceType": "m1.medium",
- "availabilityZone": "us-east-1a",
- "status": "Running",
- "updatedAt": "2015-08-02T09:11:16.356Z"
}
], - "count": 1,
- "kind": "spotinst:aws:emr:mrScaler:instance"
}
}Scale up MR Scaler instances
| mrScalerId required | string Example: simrs-12223 The MRScaler ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| adjustment required | integer Example: adjustment=3 Number of instances to add to the MR Scaler |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "modifiedInstanceGroups": [
- "ig-2470IUVXLJ652S",
- "ig-9870IUVXMYYW9"
], - "newInstanceGroups": [
- "ig-0570LPWAZXBSR3"
]
}
], - "count": 1,
- "kind": "spotinst:aws:emr:mrScaler:scale"
}
}Scale down MR Scaler instances
| mrScalerId required | string Example: simrs-12223 The MRScaler ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| adjustment required | integer Example: adjustment=3 Number of instances to remove from the MR Scaler |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "modifiedInstanceGroups": [
- "ig-2470IUVXLJ652S",
- "ig-9870IUVXMYYW9"
], - "victimInstances": [
- "ig-0570LPWAZXBSR3"
]
}
], - "count": 1,
- "kind": "spotinst:aws:emr:mrScaler:scale"
}
}Get MR Scaler cluster
| mrScalerId required | string Example: simrs-12223 The MRScaler ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "j-3N7WPI3R0D1R7",
- "availabilityZone": "us-east-1a",
- "state": "terminated",
- "createdAt": "2015-08-02T09:11:16.356Z",
- "updatedAt": "2015-08-02T10:11:16.356Z"
}
], - "count": 1,
- "kind": "spotinst:aws:emr:mrScaler:cluster"
}
}Get financial information on the MR Scaler, including running time, costs, and savings
| mrScalerId required | string Example: simrs-12223 The MRScaler ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | unix (string) or dateTime (string) Example: fromDate=2020-09-01 or fromDate=1598918400000 Get items on or after this date (ISO 8601 or Unix timestamp) |
required | unix (string) or dateTime (string) Example: toDate=2020-09-01 or toDate=1598918400000 Get items on or before this date (ISO 8601 or Unix timestamp) |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "running": {
- "value": 294.3,
- "unit": "hours"
}, - "savings": {
- "value": 60.5263,
- "unit": "percentage"
}, - "costs": {
- "actual": 8.829,
- "potential": 22.3668
}
}
], - "count": 1,
- "kind": "spotinst:aws:emr:mrScaler:costs"
}
}List all GCP Elastigroups for a Spot Account
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "id": "sig-1234567",
- "name": "spotinst-group",
- "description": "Some GCP Elastigroup description",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 20,
- "unit": "instance"
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "taskType": "setCapacity",
- "cronExpression": "1 10 * * *",
- "targetCapacity": 2,
- "minCapacity": 1,
- "maxCapacity": 3
}
]
}, - "strategy": {
- "fallbackToOd": true,
- "optimizationWindows": [
- [
- "Mon:01:00-Mon:02:00"
]
], - "provisioningModel": "PREEMPTIBLE",
- "revertToPreemptible": {
- "performAt": "timeWindow"
}, - "preemptiblePercentage": 90,
- "onDemandCount": 2,
- "drainingTimeout": 30
}, - "compute": {
- "launchSpecification": {
- "metadata": [
- {
- "key": "environment",
- "value": "production"
}
], - "tags": [
- [
- "prod1",
- "testingfeature"
]
], - "backendServiceConfig": {
- "backendServices": [
- {
- "backendServiceName": null,
- "locationType": null,
- "scheme": null,
- "namedPorts": { }
}
]
}, - "disks": [
- {
- "deviceName": null,
- "initializeParams": {
- "diskSizeGb": null,
- "diskType": null,
- "sourceImage": null
}, - "mode": "READ_WRITE",
- "source": null,
- "type": "PERSISTENT",
- "autoDelete": true,
- "boot": true,
- "interface": "SCSI"
}
], - "networkInterfaces": [
- {
- "network": "spot-network",
- "projectId": "test-project"
}
], - "startupScript": "IyEvYmluL2Jhc2gNCnRvdWNoIHRlc3Qiquwhq38",
- "shutdownScript": null,
- "ipForwarding": false,
- "minCpuPlatform": "Intel Sandy Bridge"
}, - "instanceTypes": {
- "ondemand": "n1-standard-1",
- "preemptible": [
- "n1-standard-1",
- "n1-standard-2"
], - "custom": {
- "vCPU": "4",
- "memoryGiB": "3.75"
}, - "preferred": {
- "preemptible": [
- "n1-standard-1",
- "n1-standard-2"
], - "custom": {
- "vCPU": "4",
- "memoryGiB": "3.75"
}
}
}, - "availabilityZones": [
- "asia-east1-a",
- "asia-east1-b",
- "asia-east1-c"
], - "preferredAvailabilityZones": [
- "asia-east1-a",
- "asia-east1-c"
], - "gpu": {
- "type": "nvidia-tesla-v100",
- "count": 1
}, - "subnets": [
- {
- "region": "us-west1",
- "subnetNames": [
- "private"
]
}
], - "elasticIps": null
}, - "scaling": {
- "up": [
- {
- "policyName": "scale_up_1",
- "source": "stackdriver",
- "metricName": "instance/disk/read_ops_count",
- "statistic": "average",
- "unit": "percent",
- "threshold": 10000,
- "namespace": "compute",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "dimensions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}
}
], - "down": [
- {
- "policyName": "scale_down_1",
- "source": "stackdriver",
- "metricName": "instance/disk/read_ops_count",
- "statistic": "average",
- "unit": "percent",
- "threshold": 10000,
- "namespace": "compute",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "lte",
- "dimensions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}
}
]
}, - "thirdPartiesIntegration": {
- "dockerSwarm": {
- "masterHost": "swarm1.swarm.com",
- "masterPort": 1234
}, - "gke": {
- "autoUpdate": true,
- "autoScale": {
- "isEnabled": true,
- "isAutoConfig": false,
- "cooldown": 300,
- "headroom": {
- "cpuPerUnit": 1,
- "memoryPerUnit": 0,
- "numOfUnits": 1
}, - "down": {
- "evaluationPeriods": 5
}
}, - "clusterIdentifier": "gke-clust-1",
- "location": "us-west1"
}
}, - "createdAt": "2020-10-16T09:03:23.000Z",
- "updatedAt": "2020-10-16T09:03:23.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:group"
}
}Create a new GCP Elastigroup
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object |
{- "group": {
- "name": "spotinst-group",
- "description": "Some GCP Elastigroup description",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 20,
- "unit": "instance"
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "taskType": "setCapacity",
- "cronExpression": "1 10 * * *",
- "targetCapacity": 2,
- "minCapacity": 1,
- "maxCapacity": 3
}
]
}, - "strategy": {
- "fallbackToOd": true,
- "optimizationWindows": [
- [
- "Mon:01:00-Mon:02:00"
]
], - "provisioningModel": "PREEMPTIBLE",
- "revertToPreemptible": {
- "performAt": "timeWindow"
}, - "preemptiblePercentage": 90,
- "onDemandCount": 2,
- "drainingTimeout": 30
}, - "compute": {
- "launchSpecification": {
- "metadata": [
- {
- "key": "environment",
- "value": "production"
}
], - "tags": [
- [
- "prod1",
- "testingfeature"
]
], - "backendServiceConfig": {
- "backendServices": [
- {
- "backendServiceName": "bserv-2",
- "locationType": "global",
- "scheme": null,
- "namedPorts": {
- "name": "https",
- "ports": [
- [
- 443,
- 8443
]
]
}
}
]
}, - "disks": [
- {
- "deviceName": null,
- "initializeParams": {
- "diskSizeGb": 10,
- "diskType": "pd-standard",
}, - "mode": "READ_WRITE",
- "source": null,
- "type": "PERSISTENT",
- "autoDelete": true,
- "boot": true,
- "interface": "SCSI"
}
], - "networkInterfaces": [
- {
- "network": "spot-network",
- "projectId": "test-project"
}
], - "startupScript": "IyEvYmluL2Jhc2gNCnRvdWNoIHRlc3Qiquwhq38",
- "shutdownScript": null,
- "ipForwarding": false,
- "minCpuPlatform": "Intel Sandy Bridge"
}, - "instanceTypes": {
- "ondemand": "n1-standard-1",
- "preemptible": [
- "n1-standard-1",
- "n1-standard-2"
], - "custom": {
- "vCPU": "4",
- "memoryGiB": "3.75"
}, - "preferred": {
- "preemptible": [
- "n1-standard-1",
- "n1-standard-2"
], - "custom": {
- "vCPU": "4",
- "memoryGiB": "3.75"
}
}
}, - "availabilityZones": [
- "asia-east1-a",
- "asia-east1-b",
- "asia-east1-c"
], - "preferredAvailabilityZones": [
- "asia-east1-a",
- "asia-east1-c"
], - "gpu": {
- "type": "nvidia-tesla-v100",
- "count": 1
}, - "subnets": [
- {
- "region": "us-west1",
- "subnetNames": [
- "private"
]
}
], - "elasticIps": null
}, - "scaling": {
- "up": [
- {
- "policyName": "scale_up_1",
- "source": "stackdriver",
- "metricName": "instance/disk/read_ops_count",
- "statistic": "average",
- "unit": "percent",
- "threshold": 10000,
- "namespace": "compute",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "dimensions": [
- {
- "name": "storage_type",
- "value": "pd-standard"
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}
}
], - "down": [
- {
- "policyName": "scale_down_1",
- "source": "stackdriver",
- "metricName": "instance/disk/read_ops_count",
- "statistic": "average",
- "unit": "percent",
- "threshold": 10000,
- "namespace": "compute",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "lte",
- "dimensions": [
- {
- "name": "storage_type",
- "value": "pd-standard"
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}
}
]
}, - "thirdPartiesIntegration": {
- "dockerSwarm": {
- "masterHost": "swarm1.swarm.com",
- "masterPort": 1234
}, - "gke": {
- "autoUpdate": true,
- "autoScale": {
- "isEnabled": true,
- "isAutoConfig": false,
- "cooldown": 300,
- "headroom": {
- "cpuPerUnit": 1,
- "memoryPerUnit": 0,
- "numOfUnits": 1
}, - "down": {
- "evaluationPeriods": 5
}
}, - "clusterIdentifier": "gke-clust-1",
- "location": "us-west1"
}
}, - "createdAt": "2020-10-16T09:03:23.000Z",
- "updatedAt": "2020-10-16T09:03:23.000Z"
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "id": "sig-1234567",
- "name": "spotinst-group",
- "description": "Some GCP Elastigroup description",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 20,
- "unit": "instance"
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "taskType": "setCapacity",
- "cronExpression": "1 10 * * *",
- "targetCapacity": 2,
- "minCapacity": 1,
- "maxCapacity": 3
}
]
}, - "strategy": {
- "fallbackToOd": true,
- "optimizationWindows": [
- [
- "Mon:01:00-Mon:02:00"
]
], - "provisioningModel": "PREEMPTIBLE",
- "revertToPreemptible": {
- "performAt": "timeWindow"
}, - "preemptiblePercentage": 90,
- "onDemandCount": 2,
- "drainingTimeout": 30
}, - "compute": {
- "launchSpecification": {
- "metadata": [
- {
- "key": "environment",
- "value": "production"
}
], - "tags": [
- [
- "prod1",
- "testingfeature"
]
], - "backendServiceConfig": {
- "backendServices": [
- {
- "backendServiceName": null,
- "locationType": null,
- "scheme": null,
- "namedPorts": { }
}
]
}, - "disks": [
- {
- "deviceName": null,
- "initializeParams": {
- "diskSizeGb": null,
- "diskType": null,
- "sourceImage": null
}, - "mode": "READ_WRITE",
- "source": null,
- "type": "PERSISTENT",
- "autoDelete": true,
- "boot": true,
- "interface": "SCSI"
}
], - "networkInterfaces": [
- {
- "network": "spot-network",
- "projectId": "test-project"
}
], - "startupScript": "IyEvYmluL2Jhc2gNCnRvdWNoIHRlc3Qiquwhq38",
- "shutdownScript": null,
- "ipForwarding": false,
- "minCpuPlatform": "Intel Sandy Bridge"
}, - "instanceTypes": {
- "ondemand": "n1-standard-1",
- "preemptible": [
- "n1-standard-1",
- "n1-standard-2"
], - "custom": {
- "vCPU": "4",
- "memoryGiB": "3.75"
}, - "preferred": {
- "preemptible": [
- "n1-standard-1",
- "n1-standard-2"
], - "custom": {
- "vCPU": "4",
- "memoryGiB": "3.75"
}
}
}, - "availabilityZones": [
- "asia-east1-a",
- "asia-east1-b",
- "asia-east1-c"
], - "preferredAvailabilityZones": [
- "asia-east1-a",
- "asia-east1-c"
], - "gpu": {
- "type": "nvidia-tesla-v100",
- "count": 1
}, - "subnets": [
- {
- "region": "us-west1",
- "subnetNames": [
- "private"
]
}
], - "elasticIps": null
}, - "scaling": {
- "up": [
- {
- "policyName": "scale_up_1",
- "source": "stackdriver",
- "metricName": "instance/disk/read_ops_count",
- "statistic": "average",
- "unit": "percent",
- "threshold": 10000,
- "namespace": "compute",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "dimensions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}
}
], - "down": [
- {
- "policyName": "scale_down_1",
- "source": "stackdriver",
- "metricName": "instance/disk/read_ops_count",
- "statistic": "average",
- "unit": "percent",
- "threshold": 10000,
- "namespace": "compute",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "lte",
- "dimensions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}
}
]
}, - "thirdPartiesIntegration": {
- "dockerSwarm": {
- "masterHost": "swarm1.swarm.com",
- "masterPort": 1234
}, - "gke": {
- "autoUpdate": true,
- "autoScale": {
- "isEnabled": true,
- "isAutoConfig": false,
- "cooldown": 300,
- "headroom": {
- "cpuPerUnit": 1,
- "memoryPerUnit": 0,
- "numOfUnits": 1
}, - "down": {
- "evaluationPeriods": 5
}
}, - "clusterIdentifier": "gke-clust-1",
- "location": "us-west1"
}
}, - "createdAt": "2020-10-16T09:03:23.000Z",
- "updatedAt": "2020-10-16T09:03:23.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:group"
}
}List all properties for single GCP Elastigroup
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "id": "sig-1234567",
- "name": "spotinst-group",
- "description": "Some GCP Elastigroup description",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 20,
- "unit": "instance"
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "taskType": "setCapacity",
- "cronExpression": "1 10 * * *",
- "targetCapacity": 2,
- "minCapacity": 1,
- "maxCapacity": 3
}
]
}, - "strategy": {
- "fallbackToOd": true,
- "optimizationWindows": [
- [
- "Mon:01:00-Mon:02:00"
]
], - "provisioningModel": "PREEMPTIBLE",
- "revertToPreemptible": {
- "performAt": "timeWindow"
}, - "preemptiblePercentage": 90,
- "onDemandCount": 2,
- "drainingTimeout": 30
}, - "compute": {
- "launchSpecification": {
- "metadata": [
- {
- "key": "environment",
- "value": "production"
}
], - "tags": [
- [
- "prod1",
- "testingfeature"
]
], - "backendServiceConfig": {
- "backendServices": [
- {
- "backendServiceName": null,
- "locationType": null,
- "scheme": null,
- "namedPorts": { }
}
]
}, - "disks": [
- {
- "deviceName": null,
- "initializeParams": {
- "diskSizeGb": null,
- "diskType": null,
- "sourceImage": null
}, - "mode": "READ_WRITE",
- "source": null,
- "type": "PERSISTENT",
- "autoDelete": true,
- "boot": true,
- "interface": "SCSI"
}
], - "networkInterfaces": [
- {
- "network": "spot-network",
- "projectId": "test-project"
}
], - "startupScript": "IyEvYmluL2Jhc2gNCnRvdWNoIHRlc3Qiquwhq38",
- "shutdownScript": null,
- "ipForwarding": false,
- "minCpuPlatform": "Intel Sandy Bridge"
}, - "instanceTypes": {
- "ondemand": "n1-standard-1",
- "preemptible": [
- "n1-standard-1",
- "n1-standard-2"
], - "custom": {
- "vCPU": "4",
- "memoryGiB": "3.75"
}, - "preferred": {
- "preemptible": [
- "n1-standard-1",
- "n1-standard-2"
], - "custom": {
- "vCPU": "4",
- "memoryGiB": "3.75"
}
}
}, - "availabilityZones": [
- "asia-east1-a",
- "asia-east1-b",
- "asia-east1-c"
], - "preferredAvailabilityZones": [
- "asia-east1-a",
- "asia-east1-c"
], - "gpu": {
- "type": "nvidia-tesla-v100",
- "count": 1
}, - "subnets": [
- {
- "region": "us-west1",
- "subnetNames": [
- "private"
]
}
], - "elasticIps": null
}, - "scaling": {
- "up": [
- {
- "policyName": "scale_up_1",
- "source": "stackdriver",
- "metricName": "instance/disk/read_ops_count",
- "statistic": "average",
- "unit": "percent",
- "threshold": 10000,
- "namespace": "compute",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "dimensions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}
}
], - "down": [
- {
- "policyName": "scale_down_1",
- "source": "stackdriver",
- "metricName": "instance/disk/read_ops_count",
- "statistic": "average",
- "unit": "percent",
- "threshold": 10000,
- "namespace": "compute",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "lte",
- "dimensions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}
}
]
}, - "thirdPartiesIntegration": {
- "dockerSwarm": {
- "masterHost": "swarm1.swarm.com",
- "masterPort": 1234
}, - "gke": {
- "autoUpdate": true,
- "autoScale": {
- "isEnabled": true,
- "isAutoConfig": false,
- "cooldown": 300,
- "headroom": {
- "cpuPerUnit": 1,
- "memoryPerUnit": 0,
- "numOfUnits": 1
}, - "down": {
- "evaluationPeriods": 5
}
}, - "clusterIdentifier": "gke-clust-1",
- "location": "us-west1"
}
}, - "createdAt": "2020-10-16T09:03:23.000Z",
- "updatedAt": "2020-10-16T09:03:23.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:group"
}
}Delete an Elastigroup GCP
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Update an GCP Elastigroup
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object Elastigroup Configuration |
{- "group": {
- "name": "spotinst-group",
- "description": "Some GCP Elastigroup description",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 20
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "taskType": "setCapacity",
- "cronExpression": "1 10 * * *",
- "targetCapacity": 2,
- "minCapacity": 1,
- "maxCapacity": 3
}
]
}, - "strategy": {
- "fallbackToOd": true,
- "optimizationWindows": [
- [
- "Mon:01:00-Mon:02:00"
]
], - "provisioningModel": "SPOT",
- "revertToPreemptible": {
- "performAt": "timeWindow"
}, - "preemptiblePercentage": 90,
- "onDemandCount": 2,
- "drainingTimeout": 30
}, - "compute": {
- "health": {
- "healthCheckType": "K8S_NODE",
- "autoHealing": true,
- "gracePeriod": 300,
- "unhealthyDuration": 250
}, - "launchSpecification": {
- "metadata": [
- {
- "key": "environment",
- "value": "production"
}
], - "tags": [
- [
- "prod1",
- "testingfeature"
]
], - "backendServiceConfig": {
- "backendServices": [
- {
- "backendServiceName": "bserv-2",
- "locationType": "global",
- "scheme": null,
- "namedPorts": {
- "name": "https",
- "ports": [
- [
- 443,
- 8443
]
]
}
}
]
}, - "disks": [
- {
- "deviceName": null,
- "initializeParams": {
- "diskSizeGb": 10,
- "diskType": "pd-standard",
}, - "mode": "READ_WRITE",
- "source": null,
- "type": "PERSISTENT",
- "autoDelete": true,
- "boot": true,
- "interface": "SCSI"
}
], - "networkInterfaces": [
- {
- "network": "spot-network",
- "projectId": "test-project"
}
], - "startupScript": "IyEvYmluL2Jhc2gNCnRvdWNoIHRlc3Qiquwhq38",
- "shutdownScript": null,
- "ipForwarding": false,
- "minCpuPlatform": "Intel Sandy Bridge"
}, - "instanceTypes": {
- "ondemand": "n1-standard-1",
- "preemptible": [
- "n1-standard-1",
- "n1-standard-2"
], - "custom": {
- "vCPU": "4",
- "memoryGiB": "3.75"
}, - "preferred": {
- "preemptible": [
- "n1-standard-1",
- "n1-standard-2"
], - "custom": {
- "vCPU": "4",
- "memoryGiB": "3.75"
}
}
}, - "availabilityZones": [
- "asia-east1-a",
- "asia-east1-b",
- "asia-east1-c"
], - "preferredAvailabilityZones": [
- "asia-east1-a",
- "asia-east1-c"
], - "gpu": {
- "type": "nvidia-tesla-v100",
- "count": 1
}, - "subnets": [
- {
- "region": "us-west1",
- "subnetNames": [
- "private"
]
}
], - "elasticIps": null
}, - "scaling": {
- "up": [
- {
- "policyName": "scale_up_1",
- "source": "stackdriver",
- "metricName": "instance/disk/read_ops_count",
- "statistic": "average",
- "unit": "percent",
- "threshold": 10000,
- "namespace": "compute",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "lte",
- "dimensions": [
- {
- "name": "storage_type",
- "value": "pd-standard"
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}
}
], - "down": [
- {
- "policyName": "scale_down_1",
- "source": "stackdriver",
- "metricName": "instance/disk/read_ops_count",
- "statistic": "average",
- "unit": "percent",
- "threshold": 10000,
- "namespace": "compute",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "dimensions": [
- {
- "name": "storage_type",
- "value": "pd-standard"
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}
}
]
}, - "thirdPartiesIntegration": {
- "dockerSwarm": {
- "masterHost": "swarm1.swarm.com",
- "masterPort": 1234
}, - "gke": {
- "autoUpdate": true,
- "autoScale": {
- "isEnabled": true,
- "isAutoConfig": false,
- "cooldown": 300,
- "headroom": {
- "cpuPerUnit": 1,
- "memoryPerUnit": 0,
- "numOfUnits": 1
}, - "down": {
- "evaluationPeriods": 5
}
}, - "clusterIdentifier": "gke-clust-1",
- "location": "us-west1"
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "id": "sig-1234567",
- "name": "spotinst-group",
- "description": "Some GCP Elastigroup description",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 20,
- "unit": "instance"
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "taskType": "setCapacity",
- "cronExpression": "1 10 * * *",
- "targetCapacity": 2,
- "minCapacity": 1,
- "maxCapacity": 3
}
]
}, - "strategy": {
- "fallbackToOd": true,
- "optimizationWindows": [
- [
- "Mon:01:00-Mon:02:00"
]
], - "provisioningModel": "PREEMPTIBLE",
- "revertToPreemptible": {
- "performAt": "timeWindow"
}, - "preemptiblePercentage": 90,
- "onDemandCount": 2,
- "drainingTimeout": 30
}, - "compute": {
- "launchSpecification": {
- "metadata": [
- {
- "key": "environment",
- "value": "production"
}
], - "tags": [
- [
- "prod1",
- "testingfeature"
]
], - "backendServiceConfig": {
- "backendServices": [
- {
- "backendServiceName": null,
- "locationType": null,
- "scheme": null,
- "namedPorts": { }
}
]
}, - "disks": [
- {
- "deviceName": null,
- "initializeParams": {
- "diskSizeGb": null,
- "diskType": null,
- "sourceImage": null
}, - "mode": "READ_WRITE",
- "source": null,
- "type": "PERSISTENT",
- "autoDelete": true,
- "boot": true,
- "interface": "SCSI"
}
], - "networkInterfaces": [
- {
- "network": "spot-network",
- "projectId": "test-project"
}
], - "startupScript": "IyEvYmluL2Jhc2gNCnRvdWNoIHRlc3Qiquwhq38",
- "shutdownScript": null,
- "ipForwarding": false,
- "minCpuPlatform": "Intel Sandy Bridge"
}, - "instanceTypes": {
- "ondemand": "n1-standard-1",
- "preemptible": [
- "n1-standard-1",
- "n1-standard-2"
], - "custom": {
- "vCPU": "4",
- "memoryGiB": "3.75"
}, - "preferred": {
- "preemptible": [
- "n1-standard-1",
- "n1-standard-2"
], - "custom": {
- "vCPU": "4",
- "memoryGiB": "3.75"
}
}
}, - "availabilityZones": [
- "asia-east1-a",
- "asia-east1-b",
- "asia-east1-c"
], - "preferredAvailabilityZones": [
- "asia-east1-a",
- "asia-east1-c"
], - "gpu": {
- "type": "nvidia-tesla-v100",
- "count": 1
}, - "subnets": [
- {
- "region": "us-west1",
- "subnetNames": [
- "private"
]
}
], - "elasticIps": null
}, - "scaling": {
- "up": [
- {
- "policyName": "scale_up_1",
- "source": "stackdriver",
- "metricName": "instance/disk/read_ops_count",
- "statistic": "average",
- "unit": "percent",
- "threshold": 10000,
- "namespace": "compute",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "dimensions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}
}
], - "down": [
- {
- "policyName": "scale_down_1",
- "source": "stackdriver",
- "metricName": "instance/disk/read_ops_count",
- "statistic": "average",
- "unit": "percent",
- "threshold": 10000,
- "namespace": "compute",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "lte",
- "dimensions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}
}
]
}, - "thirdPartiesIntegration": {
- "dockerSwarm": {
- "masterHost": "swarm1.swarm.com",
- "masterPort": 1234
}, - "gke": {
- "autoUpdate": true,
- "autoScale": {
- "isEnabled": true,
- "isAutoConfig": false,
- "cooldown": 300,
- "headroom": {
- "cpuPerUnit": 1,
- "memoryPerUnit": 0,
- "numOfUnits": 1
}, - "down": {
- "evaluationPeriods": 5
}
}, - "clusterIdentifier": "gke-clust-1",
- "location": "us-west1"
}
}, - "createdAt": "2020-10-16T09:03:23.000Z",
- "updatedAt": "2020-10-16T09:03:23.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:group"
}
}Import an existing GKE cluster to Elastigroup.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| clusterId required | string Example: clusterId=myGKECluster The GKE Cluster identifier |
| clusterLocation required | string Example: clusterLocation=us-central1-a The location of the cluster. Enter the desired zone for zonal GKE clusters or the region for regional GKE clusters. |
| nodePoolName | string Example: nodePoolName=somePoolName Set the node pool to import |
required | object |
{- "group": {
- "preemptiblePercentage": 70,
- "name": "myGKE",
- "capacity": {
- "minimum": 0,
- "maximum": 2,
- "target": 1
}, - "instanceTypes": {
- "ondemand": "n1-highcpu-32",
- "preemtible": [
- [
- "n1-standard-1",
- "n1-standard-2"
]
]
}, - "availabilityZones": [
- [
- "us-central1-a",
- "us-central1-b"
]
]
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "id": "sig-1234567",
- "name": "spotinst-group",
- "description": "Some GCP Elastigroup description",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 20,
- "unit": "instance"
}, - "scheduling": {
- "tasks": [
- {
- "isEnabled": true,
- "taskType": "setCapacity",
- "cronExpression": "1 10 * * *",
- "targetCapacity": 2,
- "minCapacity": 1,
- "maxCapacity": 3
}
]
}, - "strategy": {
- "fallbackToOd": true,
- "optimizationWindows": [
- [
- "Mon:01:00-Mon:02:00"
]
], - "provisioningModel": "PREEMPTIBLE",
- "revertToPreemptible": {
- "performAt": "timeWindow"
}, - "preemptiblePercentage": 90,
- "onDemandCount": 2,
- "drainingTimeout": 30
}, - "compute": {
- "launchSpecification": {
- "metadata": [
- {
- "key": "environment",
- "value": "production"
}
], - "tags": [
- [
- "prod1",
- "testingfeature"
]
], - "backendServiceConfig": {
- "backendServices": [
- {
- "backendServiceName": null,
- "locationType": null,
- "scheme": null,
- "namedPorts": { }
}
]
}, - "disks": [
- {
- "deviceName": null,
- "initializeParams": {
- "diskSizeGb": null,
- "diskType": null,
- "sourceImage": null
}, - "mode": "READ_WRITE",
- "source": null,
- "type": "PERSISTENT",
- "autoDelete": true,
- "boot": true,
- "interface": "SCSI"
}
], - "networkInterfaces": [
- {
- "network": "spot-network",
- "projectId": "test-project"
}
], - "startupScript": "IyEvYmluL2Jhc2gNCnRvdWNoIHRlc3Qiquwhq38",
- "shutdownScript": null,
- "ipForwarding": false,
- "minCpuPlatform": "Intel Sandy Bridge"
}, - "instanceTypes": {
- "ondemand": "n1-standard-1",
- "preemptible": [
- "n1-standard-1",
- "n1-standard-2"
], - "custom": {
- "vCPU": "4",
- "memoryGiB": "3.75"
}, - "preferred": {
- "preemptible": [
- "n1-standard-1",
- "n1-standard-2"
], - "custom": {
- "vCPU": "4",
- "memoryGiB": "3.75"
}
}
}, - "availabilityZones": [
- "asia-east1-a",
- "asia-east1-b",
- "asia-east1-c"
], - "preferredAvailabilityZones": [
- "asia-east1-a",
- "asia-east1-c"
], - "gpu": {
- "type": "nvidia-tesla-v100",
- "count": 1
}, - "subnets": [
- {
- "region": "us-west1",
- "subnetNames": [
- "private"
]
}
], - "elasticIps": null
}, - "scaling": {
- "up": [
- {
- "policyName": "scale_up_1",
- "source": "stackdriver",
- "metricName": "instance/disk/read_ops_count",
- "statistic": "average",
- "unit": "percent",
- "threshold": 10000,
- "namespace": "compute",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "gte",
- "dimensions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}
}
], - "down": [
- {
- "policyName": "scale_down_1",
- "source": "stackdriver",
- "metricName": "instance/disk/read_ops_count",
- "statistic": "average",
- "unit": "percent",
- "threshold": 10000,
- "namespace": "compute",
- "period": 300,
- "evaluationPeriods": 1,
- "cooldown": 300,
- "operator": "lte",
- "dimensions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": 1
}
}
]
}, - "thirdPartiesIntegration": {
- "dockerSwarm": {
- "masterHost": "swarm1.swarm.com",
- "masterPort": 1234
}, - "gke": {
- "autoUpdate": true,
- "autoScale": {
- "isEnabled": true,
- "isAutoConfig": false,
- "cooldown": 300,
- "headroom": {
- "cpuPerUnit": 1,
- "memoryPerUnit": 0,
- "numOfUnits": 1
}, - "down": {
- "evaluationPeriods": 5
}
}, - "clusterIdentifier": "gke-clust-1",
- "location": "us-west1"
}
}, - "createdAt": "2020-10-16T09:03:23.000Z",
- "updatedAt": "2020-10-16T09:03:23.000Z"
}
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:importGke"
}
}Get the status for all instances that are memebers of the Elastigroup
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "privateIpAddress": "string",
- "machineType": "string",
- "zone": "string",
- "instanceName": "string",
- "lifeCycle": "string",
- "statusName": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:group:status"
}
}Get all activity events for the Elastigroup
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| fromDate required | string <date-time> Example: fromDate=2019-05-17 Get items on or after this date (ISO 8601) |
| toDate required | string <date-time> Example: toDate=2019-05-25 Get items on or before this date (ISO 8601) |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "groudId": "sig-576g654",
- "eventType": "RollFinished",
- "createdAt": "2018-03-01T09:58:16.000+0000",
- "subEvents": [
- {
- "id": "sbgd-1234567",
- "groupId": "sig-576g654",
- "currentBatch": 1,
- "numOfBatches": 1,
- "gracePeriod": 300,
- "type": "rollInfo",
- "status": null,
- "createdAt": "2018-03-01T09:58:16.000+0000"
}
]
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:group:event"
}
}Fetch a group's Elastilog
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | unix (string) or dateTime (string) Example: fromDate=2020-09-01 or fromDate=1598918400000 Get items on or after this date (ISO 8601 or Unix timestamp) |
| limit | integer <= 1000 Default: 500 Example: limit=200 Maximum number of items to return. |
required | unix (string) or dateTime (string) Example: toDate=2020-09-01 or toDate=1598918400000 Get items on or before this date (ISO 8601 or Unix timestamp) |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "message": "Group sig-e0a2bd7c successfully created.",
- "severity": "INFO",
- "createdAt": "2019-05-19T14:34:15.000Z"
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:group:log"
}
}Add instances to the Elastigroup
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| adjustment required | integer Example: adjustment=1 The number of instances to add to the group |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "newPreemptibles": [
- {
- "instanceName": "sin-9da52709"
}
], - "newInstances": [
- {
- "instanceName": "sin-1591c0b6"
}
]
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:preemptible"
}
}Remove instances from the Elastigroup
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| adjustment required | integer Example: adjustment=1 The number of instances to remove from the group |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "victimPreemptibles": [
- {
- "instanceName": "sin-4ecd5037",
- "zone": "asia-east1-b",
- "machineType": "N1_STANDARD_2"
}
], - "victimInstances": [
- {
- "instanceName": "sin-31e0596a",
- "zone": "europe-west1-c",
- "machineType": "N1_STANDARD_1"
}
]
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:scale"
}
}Get financial information on a specific Elastigroup
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | unix (string) or dateTime (string) Example: fromDate=2020-09-01 or fromDate=1598918400000 Get items on or after this date (ISO 8601 or Unix timestamp) |
required | unix (string) or dateTime (string) Example: toDate=2020-09-01 or toDate=1598918400000 Get items on or before this date (ISO 8601 or Unix timestamp) |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "running": {
- "value": 294.3,
- "unit": "hours"
}, - "savings": {
- "value": 60.5263,
- "unit": "percentage"
}, - "costs": {
- "actual": 8.829,
- "potential": 22.3668
}
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:group:costs"
}
}Get all of the deployments for a specific Elastigroup, and their status
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| batchSizePercentage required | integer (in percentage) the batch size of the deployment, i.e.: how many instances to replace in each batch |
| gracePeriod required | integer (in seconds) the time until an instance becomes healthy in the load balancer |
{- "batchSizePercentage": 20,
- "gracePeriod": 300
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sbgd-01f01234",
- "status": "STARTING",
- "currentBatch": 1,
- "numOfBatches": 2,
- "progress": {
- "unit": "percentage",
- "value": 0
}, - "createdAt": "2018-10-10T10:50:29.000+0000",
- "updatedAt": "2018-11-01T10:50:29.000+0000"
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:group:roll"
}
}Deploy the Elastigroup: Triggers a Blue/Green deployment that replaces the existing instances in the Elastigroup
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| batchSizePercentage required | integer (in percentage) the batch size of the deployment, i.e.: how many instances to replace in each batch |
| gracePeriod required | integer (in seconds) the time until an instance becomes healthy in the load balancer |
{- "batchSizePercentage": 20,
- "gracePeriod": 300
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sbgd-01f01234",
- "status": "STARTING",
- "currentBatch": 1,
- "numOfBatches": 2,
- "progress": {
- "unit": "percentage",
- "value": 0
}
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:group:roll"
}
}Get a specific deployment's status
| rollId required | string The deployment ID to query |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sbgd-01f01234",
- "status": "STARTING",
- "currentBatch": 1,
- "numOfBatches": 2,
- "progress": {
- "unit": "percentage",
- "value": 0
}, - "createdAt": "2018-10-10T10:50:29.000+0000",
- "updatedAt": "2018-11-01T10:50:29.000+0000"
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:group:roll"
}
}Stop an existing deployment
| rollId required | string The deployment ID to query |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object |
{- "roll": {
- "status": "STOPPED"
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sbgd-01f01234",
- "status": "STARTING",
- "currentBatch": 1,
- "numOfBatches": 2,
- "progress": {
- "unit": "percentage",
- "value": 0
}
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:group:roll"
}
}Detach instances from an Elastigroup
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| drainingTimeout | integer (Applies only if shouldTerminateInstances is on) The draining timeout (in seconds) before terminating the instance. If no draining timeout is defined, the group's draining timeout applies. |
| instancesToDetach | array The names of the instances to detach from the group. |
| shouldDecrementTargetCapacity | boolean Indicates whether to decrement the capacity of the group, so no new instance will be launched instead of the detached one. |
| shouldTerminateInstances | boolean Indicates whether to terminate the instances or not. |
{- "instancesToDetach": [
- "sin-44c02836",
- "sin-ddf71dfa"
], - "shouldTerminateInstances": true,
- "shouldDecrementTargetCapacity": true,
- "drainingTimeout": 0
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:gcp:gce:detachInstances"
}
}Get the current instance status. Possible status values: ACTIVE, TERMINATING
| instanceId required | string GCP Instance ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "instanceName": "sin-123",
- "lifeCycleState": "ACTIVE",
- "privateIp": "10.0.0.1",
- "groupId": "sig-123"
}
], - "count": 1,
- "kind": "spotinst:gcp:gce:instance"
}
}Set termination protection for a specific instance.
| instanceId required | string GCP Instance ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| ttlInMinutes required | string Specify a TTL (in minutes) for this lock, i.e.: for how long the protection will be valid for. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Remove termination protection for a specific instance.
| instanceId required | string GCP Instance ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Update an Azure Elastigroup cluster.
| groupId required | string Example: sig-123123 Elastigroup's ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object |
{- "group": {
- "name": "spotinst-group",
- "description": "This is my example elastigroup",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "strategy": {
- "spotPercentage": 50,
- "onDemandCount": 0,
- "drainingTimeout": 30,
- "fallbackToOd": true,
- "revertToSpot": {
- "performAt": "timeWindow"
}, - "optimizationWindows": [
- "Mon:03:00-Wed:02:30"
], - "signals": [
- {
- "type": "vmReady",
- "timeout": 180
}
]
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "Average",
- "unit": "percent",
- "threshold": 0.75,
- "namespace": "Microsoft.Network/applicationGateways",
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "testApplicationGateway"
}, - {
- "name": "resourceGroupName",
- "value": "testResourceGroup"
}
], - "operator": "gte",
- "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 0,
- "minimum": 0,
- "maximum": 0
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "Average",
- "unit": "percent",
- "threshold": 0.25,
- "namespace": "Microsoft.Network/applicationGateways",
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "testApplicationGateway"
}, - {
- "name": "resourceGroupName",
- "value": "testResourceGroup"
}
], - "operator": "lte",
- "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 0,
- "minimum": 0,
- "maximum": 0
}
}
]
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "spotSizes": "string",
- "preferredSpotSizes": [
- "standard_a2_v2"
]
}, - "launchSpecification": {
- "customData": "",
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "custom": {
- "resourceGroupName": "spotinst-azure",
- "name": "custom-image-name"
}, - "gallery": {
- "resourceGroupName": "spotinst-azure",
- "galleryName": "gallery-name",
- "imageName": "gallery-image-name",
- "version": "0.0.1"
}
}, - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": true,
- "subnetName": "testSubnet",
- "assignPublicIp": true,
- "publicIpSku": "STANDARD",
- "securityGroup": {
- "name": "test",
- "resourceGroupName": "test"
}, - "publicIps": [
- {
- "resourceGroupName": "resourceGroup",
- "name": "name"
}
], - "enableIPForwarding": true,
- "additionalIpConfigurations": [
- {
- "name": "test",
- "privateIpAddressVersion": "IPv4"
}
], - "applicationSecurityGroups": [
- {
- "resourceGroupName": "AsgResourceGroup",
- "name": "AsgName"
}
]
}
]
}, - "login": {
- "userName": "spotinst",
- "sshPublicKey": "ssh-rsa",
- "password": "string"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "loadBalancer",
- "resourceGroupName": "testResourceGroup",
- "name": "testLoadBalancer",
- "sku": "Standard",
- "backendPoolNames": [
- "testBackendPool1",
- "testBackendPool2"
]
}
]
}, - "managedServiceIdentities": [
- {
- "name": "mySI2",
- "resourceGroupName": "myResourceGroup"
}
], - "shutdownScript": "IyEvdXNyL2Jpbi9lbnYgYmFzaAoiR29vZGJ5ZSBvbGQgaW5zdGFuY2Ui",
- "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "extensions": [
- {
- "name": "extensionName",
- "type": "customScript",
- "publisher": "MMicrosoft.Azure.Extensions",
- "apiVersion": "2.0",
- "minorVersionAutoUpgrade": true,
- "publicSettings": { },
- "protectedSettings": { }
}
], - "dataDisks": [
- {
- "sizeGB": 1,
- "lun": 1,
- "type": "Standard_LRS"
}
], - "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}, - "bootDiagnostics": {
- "isEnabled": true,
- "type": "unmanaged",
}, - "secrets": [
- {
- "sourceVault": {
- "resourceGroupName": "string",
- "name": "string"
}, - "vaultCertificates": [
- {
- "certificateUrl": "string",
- "certificateStore": "string"
}
]
}
]
}, - "zones": [
- 1
], - "preferredZones": [
- 1
]
}, - "health": {
- "healthCheckTypes": [
- "vmState"
], - "gracePeriod": 120,
- "autoHealing": true,
- "unhealthyDuration": 360
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/azure/compute/group/sig-12345",
- "method": "PUT",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sig-123456789",
- "name": "spotinst-group",
- "description": "This is my example elastigroup",
- "region": "westus2",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "strategy": {
- "spotPercentage": 50,
- "drainingTimeout": 30,
- "fallbackToOd": true,
- "revertToSpot": {
- "performAt": "timeWindow"
}, - "optimizationWindows": [
- "Mon:03:00-Wed:02:30"
], - "signals": [
- {
- "type": "vmReady",
- "timeout": 180
}
]
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "Average",
- "unit": "percent",
- "threshold": 0.75,
- "namespace": "Microsoft.Network/applicationGateways",
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "testApplicationGateway"
}, - {
- "name": "resourceGroupName",
- "value": "testResourceGroup"
}
], - "operator": "gte",
- "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 0,
- "minimum": 0,
- "maximum": 0
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "Average",
- "unit": "percent",
- "threshold": 0.25,
- "namespace": "Microsoft.Network/applicationGateways",
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "testApplicationGateway"
}, - {
- "name": "resourceGroupName",
- "value": "testResourceGroup"
}
], - "operator": "lte",
- "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 0,
- "minimum": 0,
- "maximum": 0
}
}
]
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "spotSizes": "string",
- "preferredSpotSizes": [
- "standard_a2_v2"
]
}, - "os": "Linux",
- "launchSpecification": {
- "customData": "",
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "custom": {
- "resourceGroupName": "spotinst-azure",
- "name": "custom-image-name"
}, - "gallery": {
- "resourceGroupName": "spotinst-azure",
- "galleryName": "gallery-name",
- "imageName": "gallery-image-name",
- "version": "0.0.1"
}
}, - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": true,
- "subnetName": "testSubnet",
- "assignPublicIp": true,
- "publicIpSku": "STANDARD",
- "securityGroup": {
- "name": null,
- "resourceGroupName": null
}, - "publicIps": [
- { }
], - "enableIPForwarding": true,
- "additionalIpConfigurations": [
- { }
], - "privateIpAddresses": [
- null
], - "applicationSecurityGroups": [
- { }
]
}
]
}, - "login": {
- "userName": "spotinst",
- "sshPublicKey": "ssh-rsa"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "loadBalancer",
- "resourceGroupName": "testResourceGroup",
- "name": "testLoadBalancer",
- "sku": "Standard",
- "backendPoolNames": [
- "testBackendPool1",
- "testBackendPool2"
]
}
]
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "extensions": [
- {
- "name": "extensionName",
- "type": "customScript",
- "publisher": "MMicrosoft.Azure.Extensions",
- "apiVersion": "2.0",
- "minorVersionAutoUpgrade": true,
- "publicSettings": { },
- "protectedSettings": { }
}
], - "dataDisks": [
- {
- "sizeGB": 1,
- "lun": 1,
- "type": "Standard_LRS"
}
], - "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}, - "bootDiagnostics": {
- "isEnabled": true,
- "type": "unmanaged",
}, - "secrets": [
- {
- "sourceVault": {
- "resourceGroupName": "string",
- "name": "string"
}, - "vaultCertificates": [
- {
- "certificateUrl": null,
- "certificateStore": null
}
]
}
]
}, - "zones": [
- 1
], - "preferredZones": [
- 1
]
}, - "health": {
- "healthCheckTypes": [
- "vmState"
], - "gracePeriod": 120,
- "autoHealing": true,
- "unhealthyDuration": 360
}, - "createdAt": "2018-10-10T10:50:29.000+0000",
- "updatedAt": "2018-11-01T10:50:29.000+0000"
}
], - "count": 1,
- "kind": "spotinst:azure:compute:group"
}
}List an Elastigroup cluster.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/azure/compute/group/sig-12345",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sig-123456789",
- "name": "spotinst-group",
- "description": "This is my example elastigroup",
- "region": "westus2",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "strategy": {
- "spotPercentage": 50,
- "drainingTimeout": 30,
- "fallbackToOd": true,
- "revertToSpot": {
- "performAt": "timeWindow"
}, - "optimizationWindows": [
- "Mon:03:00-Wed:02:30"
], - "signals": [
- {
- "type": "vmReady",
- "timeout": 180
}
]
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "Average",
- "unit": "percent",
- "threshold": 0.75,
- "namespace": "Microsoft.Network/applicationGateways",
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "testApplicationGateway"
}, - {
- "name": "resourceGroupName",
- "value": "testResourceGroup"
}
], - "operator": "gte",
- "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 0,
- "minimum": 0,
- "maximum": 0
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "Average",
- "unit": "percent",
- "threshold": 0.25,
- "namespace": "Microsoft.Network/applicationGateways",
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "testApplicationGateway"
}, - {
- "name": "resourceGroupName",
- "value": "testResourceGroup"
}
], - "operator": "lte",
- "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 0,
- "minimum": 0,
- "maximum": 0
}
}
]
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "spotSizes": "string",
- "preferredSpotSizes": [
- "standard_a2_v2"
]
}, - "os": "Linux",
- "launchSpecification": {
- "customData": "",
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "custom": {
- "resourceGroupName": "spotinst-azure",
- "name": "custom-image-name"
}, - "gallery": {
- "resourceGroupName": "spotinst-azure",
- "galleryName": "gallery-name",
- "imageName": "gallery-image-name",
- "version": "0.0.1"
}
}, - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": true,
- "subnetName": "testSubnet",
- "assignPublicIp": true,
- "publicIpSku": "STANDARD",
- "securityGroup": {
- "name": null,
- "resourceGroupName": null
}, - "publicIps": [
- { }
], - "enableIPForwarding": true,
- "additionalIpConfigurations": [
- { }
], - "privateIpAddresses": [
- null
], - "applicationSecurityGroups": [
- { }
]
}
]
}, - "login": {
- "userName": "spotinst",
- "sshPublicKey": "ssh-rsa"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "loadBalancer",
- "resourceGroupName": "testResourceGroup",
- "name": "testLoadBalancer",
- "sku": "Standard",
- "backendPoolNames": [
- "testBackendPool1",
- "testBackendPool2"
]
}
]
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "extensions": [
- {
- "name": "extensionName",
- "type": "customScript",
- "publisher": "MMicrosoft.Azure.Extensions",
- "apiVersion": "2.0",
- "minorVersionAutoUpgrade": true,
- "publicSettings": { },
- "protectedSettings": { }
}
], - "dataDisks": [
- {
- "sizeGB": 1,
- "lun": 1,
- "type": "Standard_LRS"
}
], - "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}, - "bootDiagnostics": {
- "isEnabled": true,
- "type": "unmanaged",
}, - "secrets": [
- {
- "sourceVault": {
- "resourceGroupName": "string",
- "name": "string"
}, - "vaultCertificates": [
- {
- "certificateUrl": null,
- "certificateStore": null
}
]
}
]
}, - "zones": [
- 1
], - "preferredZones": [
- 1
]
}, - "health": {
- "healthCheckTypes": [
- "vmState"
], - "gracePeriod": 120,
- "autoHealing": true,
- "unhealthyDuration": 360
}, - "createdAt": "2018-10-10T10:50:29.000+0000",
- "updatedAt": "2018-11-01T10:50:29.000+0000"
}
], - "count": 1,
- "kind": "spotinst:azure:compute:group"
}
}Delete an Elastigroup cluster.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/azure/compute/group/sig-12345",
- "method": "DELETE",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Update the capacity of an Elastigroup
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object (Capacity) Capacity of Elastigroup. |
{- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}
}{- "request": {
- "id": "3ab3fdf7-3af3-46db-9e63-b88cfdac058c",
- "url": "/azure/compute/group/sig-b255ac/capacity?accountId=act-567c21",
- "method": "PUT",
- "timestamp": "2018-08-20T15:31:12.730Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}
], - "count": 1,
- "kind": "spotinst:azure:compute:group:capacity"
}
}Create a new Elastigroup cluster.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object (Azure Elastigroup) Azure Elastigroup Configuration |
{- "group": {
- "name": "spotinst-group",
- "description": "This is my example elastigroup",
- "region": "eastus",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "scaling": {
- "up": {
- "policyName": "cpuScale",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "unit": "Count",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "key": "resourceGroupName",
- "value": "TestAppGateway"
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 23,
- "minimum": 20,
- "maximum": 25
}
}, - "down": {
- "policyName": "cpuScale",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "unit": "Count",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "key": "resourceGroupName",
- "value": "TestAppGateway"
}
], - "action": {
- "type": "adjustment",
- "target": 1,
- "minimum": 1,
- "maximum": 1,
- "adjustment": "2"
}
}
}, - "strategy": {
- "spotPercentage": 100,
- "onDemandCount": 3,
- "drainingTimeout": 120,
- "revertToSpot": {
- "performAt": "always"
}, - "optimizationWindows": [ ],
- "signals": [
- {
- "timeout": 50,
- "type": "vmReady"
}
]
}, - "health": {
- "autoHealing": false,
- "healthCheckTypes": "vmState",
- "gracePeriod": 300,
- "unhealthyDuration": 360
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_b1s"
], - "spotSizes": [
- "standard_a1_v2"
], - "preferredSpotSizes": [
- "standard_a2_v2"
]
}, - "os": "Linux",
- "launchSpecification": {
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "custom": {
- "resourceGroupName": "spotinst-azure",
- "name": "custom-image-name"
}, - "gallery": {
- "resourceGroupName": "spotinst-azure",
- "galleryName": "gallery-name",
- "imageName": "gallery-image-name",
- "version": "0.0.1"
}
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "MULTAI_TARGET_SET",
- "balancerId": "lb-1ee2e3q",
- "targetSetId": "ts-3eq",
- "autoWeight": true
}
]
}, - "managedServiceIdentities": [
- {
- "resourceGroupName": "Resourse Group 1",
- "name": "Test"
}
], - "shutdownScript": "IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=",
- "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": true,
- "subnetName": "testSubnet",
- "assignPublicIp": true,
- "publicIpSku": "STANDARD",
- "securityGroup": {
- "name": "test",
- "resourceGroupName": "test"
}, - "publicIps": [
- {
- "resourceGroupName": "resourceGroup",
- "name": "name"
}
], - "enableIPForwarding": true,
- "additionalIpConfigurations": [
- {
- "name": "test",
- "privateIpAddressVersion": "IPv4"
}
], - "privateIpAddresses": [
- [
- "172.232.5.3",
- "172.23.5.4",
- "172.23.5.7",
- "172.23.5.8",
- "172.23.5.9",
- "172.23.5.10"
]
], - "applicationSecurityGroups": [
- {
- "resourceGroupName": "AsgResourceGroup",
- "name": "AsgName"
}
]
}
]
}, - "extensions": [
- {
- "autoUpgradeMinorVersion": true,
- "name": "k8s-agentpool1-38611891-vmss-computeAksLinuxBilling",
- "protectedSettings": {
- "commandToExecute": "string"
}, - "publicSettings": { },
- "publisher": "Microsoft.AKS",
- "type": "Compute.AKS-Engine.Linux.Billing",
- "apiVersion": 1,
- "minorVersionAutoUpgrade": true
}
], - "dataDisks": [
- {
- "type": "Standard_LRS",
- "lun": 6,
- "sizeGB": 10
}
], - "osDisk": {
- "type": "Standard_LRS",
- "size": 6
}, - "customData": "IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=",
- "login": [
- {
- "userName": "spotinst",
- "sshPublicKey": "string",
- "password": "string"
}
], - "bootDiagnostics": {
- "isEnabled": true,
- "type": "unmanaged",
}, - "secrets": [
- {
- "sourceVault": {
- "resourceGroupName": "string",
- "name": "string"
}, - "vaultCertificates": [
- {
- "certificateUrl": "string",
- "certificateStore": "string"
}
]
}
]
}, - "zones": [
- 1
], - "preferredZones": [
- 1
]
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/azure/compute/group",
- "method": "POST",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sig-123456789",
- "name": "spotinst-group",
- "description": "This is my example elastigroup",
- "region": "westus2",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "strategy": {
- "spotPercentage": 50,
- "drainingTimeout": 30,
- "fallbackToOd": true,
- "revertToSpot": {
- "performAt": "timeWindow"
}, - "optimizationWindows": [
- "Mon:03:00-Wed:02:30"
], - "signals": [
- {
- "type": "vmReady",
- "timeout": 180
}
]
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "Average",
- "unit": "percent",
- "threshold": 0.75,
- "namespace": "Microsoft.Network/applicationGateways",
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "testApplicationGateway"
}, - {
- "name": "resourceGroupName",
- "value": "testResourceGroup"
}
], - "operator": "gte",
- "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 0,
- "minimum": 0,
- "maximum": 0
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "Average",
- "unit": "percent",
- "threshold": 0.25,
- "namespace": "Microsoft.Network/applicationGateways",
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "testApplicationGateway"
}, - {
- "name": "resourceGroupName",
- "value": "testResourceGroup"
}
], - "operator": "lte",
- "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 0,
- "minimum": 0,
- "maximum": 0
}
}
]
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "spotSizes": "string",
- "preferredSpotSizes": [
- "standard_a2_v2"
]
}, - "os": "Linux",
- "launchSpecification": {
- "customData": "",
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "custom": {
- "resourceGroupName": "spotinst-azure",
- "name": "custom-image-name"
}, - "gallery": {
- "resourceGroupName": "spotinst-azure",
- "galleryName": "gallery-name",
- "imageName": "gallery-image-name",
- "version": "0.0.1"
}
}, - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": true,
- "subnetName": "testSubnet",
- "assignPublicIp": true,
- "publicIpSku": "STANDARD",
- "securityGroup": {
- "name": null,
- "resourceGroupName": null
}, - "publicIps": [
- { }
], - "enableIPForwarding": true,
- "additionalIpConfigurations": [
- { }
], - "privateIpAddresses": [
- null
], - "applicationSecurityGroups": [
- { }
]
}
]
}, - "login": {
- "userName": "spotinst",
- "sshPublicKey": "ssh-rsa"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "loadBalancer",
- "resourceGroupName": "testResourceGroup",
- "name": "testLoadBalancer",
- "sku": "Standard",
- "backendPoolNames": [
- "testBackendPool1",
- "testBackendPool2"
]
}
]
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "extensions": [
- {
- "name": "extensionName",
- "type": "customScript",
- "publisher": "MMicrosoft.Azure.Extensions",
- "apiVersion": "2.0",
- "minorVersionAutoUpgrade": true,
- "publicSettings": { },
- "protectedSettings": { }
}
], - "dataDisks": [
- {
- "sizeGB": 1,
- "lun": 1,
- "type": "Standard_LRS"
}
], - "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}, - "bootDiagnostics": {
- "isEnabled": true,
- "type": "unmanaged",
}, - "secrets": [
- {
- "sourceVault": {
- "resourceGroupName": "string",
- "name": "string"
}, - "vaultCertificates": [
- {
- "certificateUrl": null,
- "certificateStore": null
}
]
}
]
}, - "zones": [
- 1
], - "preferredZones": [
- 1
]
}, - "health": {
- "healthCheckTypes": [
- "vmState"
], - "gracePeriod": 120,
- "autoHealing": true,
- "unhealthyDuration": 360
}, - "createdAt": "2018-10-10T10:50:29.000+0000",
- "updatedAt": "2018-11-01T10:50:29.000+0000"
}
], - "count": 1,
- "kind": "spotinst:azure:compute:group"
}
}List Elastigroup clusters.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| NAME | string Example: NAME=name Filters to find the Elastigroup via a specific name. |
| REGION | string Example: REGION=region Filters to find all the groups in a specific region. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/azure/compute/group",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sig-123456789",
- "name": "spotinst-group",
- "description": "This is my example elastigroup",
- "region": "westus2",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "strategy": {
- "spotPercentage": 50,
- "drainingTimeout": 30,
- "fallbackToOd": true,
- "revertToSpot": {
- "performAt": "timeWindow"
}, - "optimizationWindows": [
- "Mon:03:00-Wed:02:30"
], - "signals": [
- {
- "type": "vmReady",
- "timeout": 180
}
]
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "Average",
- "unit": "percent",
- "threshold": 0.75,
- "namespace": "Microsoft.Network/applicationGateways",
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "testApplicationGateway"
}, - {
- "name": "resourceGroupName",
- "value": "testResourceGroup"
}
], - "operator": "gte",
- "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 0,
- "minimum": 0,
- "maximum": 0
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "Average",
- "unit": "percent",
- "threshold": 0.25,
- "namespace": "Microsoft.Network/applicationGateways",
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "testApplicationGateway"
}, - {
- "name": "resourceGroupName",
- "value": "testResourceGroup"
}
], - "operator": "lte",
- "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 0,
- "minimum": 0,
- "maximum": 0
}
}
]
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "spotSizes": "string",
- "preferredSpotSizes": [
- "standard_a2_v2"
]
}, - "os": "Linux",
- "launchSpecification": {
- "customData": "",
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "custom": {
- "resourceGroupName": "spotinst-azure",
- "name": "custom-image-name"
}, - "gallery": {
- "resourceGroupName": "spotinst-azure",
- "galleryName": "gallery-name",
- "imageName": "gallery-image-name",
- "version": "0.0.1"
}
}, - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": true,
- "subnetName": "testSubnet",
- "assignPublicIp": true,
- "publicIpSku": "STANDARD",
- "securityGroup": {
- "name": null,
- "resourceGroupName": null
}, - "publicIps": [
- { }
], - "enableIPForwarding": true,
- "additionalIpConfigurations": [
- { }
], - "privateIpAddresses": [
- null
], - "applicationSecurityGroups": [
- { }
]
}
]
}, - "login": {
- "userName": "spotinst",
- "sshPublicKey": "ssh-rsa"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "loadBalancer",
- "resourceGroupName": "testResourceGroup",
- "name": "testLoadBalancer",
- "sku": "Standard",
- "backendPoolNames": [
- "testBackendPool1",
- "testBackendPool2"
]
}
]
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "extensions": [
- {
- "name": "extensionName",
- "type": "customScript",
- "publisher": "MMicrosoft.Azure.Extensions",
- "apiVersion": "2.0",
- "minorVersionAutoUpgrade": true,
- "publicSettings": { },
- "protectedSettings": { }
}
], - "dataDisks": [
- {
- "sizeGB": 1,
- "lun": 1,
- "type": "Standard_LRS"
}
], - "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}, - "bootDiagnostics": {
- "isEnabled": true,
- "type": "unmanaged",
}, - "secrets": [
- {
- "sourceVault": {
- "resourceGroupName": "string",
- "name": "string"
}, - "vaultCertificates": [
- {
- "certificateUrl": null,
- "certificateStore": null
}
]
}
]
}, - "zones": [
- 1
], - "preferredZones": [
- 1
]
}, - "health": {
- "healthCheckTypes": [
- "vmState"
], - "gracePeriod": 120,
- "autoHealing": true,
- "unhealthyDuration": 360
}, - "createdAt": "2018-10-10T10:50:29.000+0000",
- "updatedAt": "2018-11-01T10:50:29.000+0000"
}
], - "count": 1,
- "kind": "spotinst:azure:compute:group"
}
}Get status of Elastigroup cluster.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "status": "ready",
- "vms": [
- {
- "vmName": "vm-12345",
- "region": "eastus",
- "vmSize": "standard_a1_v2",
- "lifeCycle": "spot",
- "os": "Linux",
- "privateIp": "192.0.0.1",
- "publicIp": "183.123.67.79",
- "provisioningState": "succeeded",
- "powerState": "running",
- "createdAt": "2020-06-18T12:02:49.000Z"
}
], - "suspendedProcesses": [
- {
- "name": "autoHealing",
- "expiresAt": "2020-11-10T18:43:52.000Z"
}, - {
- "name": "signalTimeout"
}, - {
- "name": "autoScale"
}, - {
- "name": "scaleDown"
}, - {
- "name": "syncStrategy",
- "expiresAt": "2020-11-10T17:43:52.000Z"
}
]
}
], - "count": 1,
- "kind": "spotinst:azure:compute:group:status"
}
}Get a list of vms with health status.
| groupId required | string Example: sig-123123 Elastigroup's ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/azure/compute/group/sig-123123/vmHealthiness",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "vmName": "vm-123456789",
- "lifeCycle": "SPOT",
- "healthStatus": "HEALTHY"
}
], - "count": 1,
- "kind": "spotinst:azure:compute:group:vmHealthiness"
}
}Suspends the Group.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | Array of objects List of processes to create or update their suspensions |
{- "processes": [
- {
- "name": "autoHealing",
- "ttlInMinute": 120
}, - {
- "name": "signalTimeout"
}
]
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/azure/compute/group/sig-12345/suspend?accountId=act-123456789",
- "method": "PUT",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Resumes the Group.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | Array of objects List of processes to cancel their suspensions |
{- "processes": [
- {
- "name": "syncStrategy"
}, - {
- "name": "signalTimeout"
}
]
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/azure/compute/group/sig-12345/resume?accountId=act-123456789",
- "method": "PUT",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Scale down specific virtual machines in Elastigroup cluster.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| drainingTimeout | string Default: 300 The time in seconds to allow the virtual machine be be drained from incoming TCP connections and detached from MLB before terminating it. |
| shouldDecrementTargetCapacity required | Boolean Prevent Elastigroup from scaling back to target capacity when virtual machines are detached. |
| shouldTerminateVms required | Boolean Whether to terminate the VMs or not. |
| vmsToDetach required | Array of strings Array of virtual machine names to detach. |
{- "vmsToDetach": [
- "vm-0fbd69f960db"
], - "shouldTerminateVms": true,
- "shouldDecrementTargetCapacity": true,
- "drainingTimeout": 300
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "detachedVms": [
- {
- "vmName": "vm-12345",
- "region": "eastus",
- "vmSize": "standard_a1_v2",
- "lifeCycle": "spot",
- "os": "Linux",
- "privateIp": "192.0.0.1",
- "publicIp": "183.123.67.79"
}
], - "newVms": [
- {
- "vmName": "vm-56789",
- "region": "eastus",
- "vmSize": "standard_a1_v2",
- "lifeCycle": "spot",
- "os": "Linux",
- "privateIp": "192.0.0.1",
- "publicIp": "183.123.67.79",
- "provisioningState": "succeeded",
- "powerState": "running",
- "createdAt": "2020-06-18T12:02:49.000Z"
}
]
}
], - "count": 1,
- "kind": "spotinst:azure:compute:group:detachVms"
}
}Scale down virtual machines in Elastigroup cluster.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| adjustment required | integer Example: adjustment=5 Number of VMs to scale down |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "status": "ready",
- "vms": [
- {
- "vmName": "vm-12345",
- "region": "eastus",
- "vmSize": "standard_a1_v2",
- "lifeCycle": "spot",
- "os": "Linux",
- "privateIp": "192.0.0.1",
- "publicIp": "183.123.67.79",
- "provisioningState": "succeeded",
- "powerState": "running",
- "createdAt": "2020-06-18T12:02:49.000Z"
}
], - "suspendedProcesses": [
- {
- "name": "autoHealing",
- "expiresAt": "2020-11-10T18:43:52.000Z"
}, - {
- "name": "signalTimeout"
}, - {
- "name": "autoScale"
}, - {
- "name": "scaleDown"
}, - {
- "name": "syncStrategy",
- "expiresAt": "2020-11-10T17:43:52.000Z"
}
]
}
], - "count": 1,
- "kind": "spotinst:azure:compute:group:status"
}
}Scale up virtual machines in Elastigroup cluster.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| adjustment required | integer Example: adjustment=5 Number of VMs to scale up |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "status": "ready",
- "vms": [
- {
- "vmName": "vm-12345",
- "region": "eastus",
- "vmSize": "standard_a1_v2",
- "lifeCycle": "spot",
- "os": "Linux",
- "privateIp": "192.0.0.1",
- "publicIp": "183.123.67.79",
- "provisioningState": "succeeded",
- "powerState": "running",
- "createdAt": "2020-06-18T12:02:49.000Z"
}
], - "suspendedProcesses": [
- {
- "name": "autoHealing",
- "expiresAt": "2020-11-10T18:43:52.000Z"
}, - {
- "name": "signalTimeout"
}, - {
- "name": "autoScale"
}, - {
- "name": "scaleDown"
}, - {
- "name": "syncStrategy",
- "expiresAt": "2020-11-10T17:43:52.000Z"
}
]
}
], - "count": 1,
- "kind": "spotinst:azure:compute:group:status"
}
}Deploy the Elastigroup. This triggers a Blue/Green deployment that replaces the existing VMs in the Elastigroup.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object (groupVmDeployment) |
{- "deployment": {
- "batchSizePercentage": 50,
- "gracePeriod": 300,
- "batchMinHealthyPercentage": 100,
- "drainingTimeout": 120,
- "healthCheckTypes": [
- "vmState"
]
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sbgd-f331fb8e",
- "groupId": "sig-a7aa60cd",
- "status": "deploymentStart",
- "currentBatch": 1,
- "numOfBatches": 2,
- "progress": {
- "unit": "percentage",
- "value": 10
}, - "updatedAt": "2020-06-22T11:15:06.614Z",
- "createdAt": "2020-06-22T11:15:06.614Z"
}
], - "count": 1,
- "kind": "spotinst:azure:compute:group:deployment"
}
}Get a list of all the deployments of a specific Elastigroup and the status of each one.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| LIMIT | integer Example: LIMIT=14 Limits the number of deployments returned. Default: 5 |
| SORT | string Example: SORT=createdAt:DESC Field by which to sort the results. Default: createdAt:DESC |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sbgd-f331fb8e",
- "groupId": "sig-a7aa60cd",
- "status": "deploymentStart",
- "currentBatch": 1,
- "numOfBatches": 2,
- "progress": {
- "unit": "percentage",
- "value": 10
}, - "updatedAt": "2020-06-22T11:15:06.614Z",
- "createdAt": "2020-06-22T11:15:06.614Z"
}
], - "count": 1,
- "kind": "spotinst:azure:compute:group:deployment"
}
}Get the status of a specific deployment.
| DEPLOYMENT_ID required | string Example: sbgd-9876 The deployment ID you want to query. |
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sbgd-f331fb8e",
- "groupId": "sig-a7aa60cd",
- "status": "deploymentStart",
- "currentBatch": 1,
- "numOfBatches": 2,
- "progress": {
- "unit": "percentage",
- "value": 10
}, - "updatedAt": "2020-06-22T11:15:06.614Z",
- "createdAt": "2020-06-22T11:15:06.614Z"
}
], - "count": 1,
- "kind": "spotinst:azure:compute:group:deployment"
}
}Get the detailed status of a specific deployment. This includes status details per batch and other information.
| DEPLOYMENT_ID required | string Example: sbgd-9876 The deployment ID you want to query. |
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "detailsOverview": {
- "deploymentId": "sbgd-04c4658b",
- "numberOfBatches": 2,
- "currentBatch": 2,
- "gracePeriod": 2,
- "blueVms": 2,
- "greenVms": 1,
- "description": null,
- "errorMessage": null,
- "createdAt": "2020-06-18T05:33:18.000Z",
- "healthCheck": [
- "instanceState"
]
}, - "batches": [
- {
- "batch": 1,
- "blue": {
- "vmName": "i-57ef3cf7a694",
- "batchNum": 1,
- "status": "detached",
- "type": "old",
- "updatedAt": "2020-06-18T11:16:58.000Z"
}, - "green": {
- "vmName": "i-f2a44ba41875",
- "batchNum": 1,
- "status": "detached",
- "type": "old",
- "updatedAt": "2020-06-18T11:16:58.000Z"
}
}
], - "events": [
- {
- "status": "deploymentStart",
- "eventType": "Batch 1 - Launching New instances",
- "timestamp": "2020-06-18T05:33:18.000Z"
}
]
}
], - "count": 1,
- "kind": "spotinst:azure:compute:deployment:details"
}
}Given a scale set, constructs a valid group configuration based on the scale set and returns it.
| resourceGroupName required | string Example: ExampleResourceGroup Resource Group Name - Must be valid. |
| scaleSetName required | string Example: MyExampleScaleSetImport Scale Set Name - Must be valid |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "name": "MyExampleScaleSetImport",
- "region": "westus2",
- "resourceGroupName": "ExampleResourceGroup",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "strategy": {
- "spotPercentage": 50,
- "drainingTimeout": 30,
- "fallbackToOd": true,
- "revertToSpot": {
- "performAt": "timeWindow"
}, - "optimizationWindows": [
- "Mon:03:00-Wed:02:30"
], - "signals": [
- {
- "type": "vmReady",
- "timeout": 180
}
]
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "Average",
- "unit": "percent",
- "threshold": 0.75,
- "namespace": "Microsoft.Network/applicationGateways",
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "dimenstions": [
- {
- "name": null,
- "value": null
}, - {
- "name": null,
- "value": null
}
], - "operator": "gte",
- "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 0,
- "minimum": 0,
- "maximum": 0
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "Average",
- "unit": "percent",
- "threshold": 0.25,
- "namespace": "Microsoft.Network/applicationGateways",
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "dimenstions": [
- {
- "name": null,
- "value": null
}, - {
- "name": null,
- "value": null
}
], - "operator": "lte",
- "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 0,
- "minimum": 0,
- "maximum": 0
}
}
]
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "spotSizes": "string",
- "preferredSpotSizes": [
- "standard_a2_v2"
]
}, - "os": "Linux",
- "launchSpecification": {
- "customData": "",
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "custom": {
- "resourceGroupName": "spotinst-azure",
- "name": "custom-image-name"
}, - "gallery": {
- "resourceGroupName": "spotinst-azure",
- "galleryName": "gallery-name",
- "imageName": "gallery-image-name",
- "version": "0.0.1"
}
}, - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": null,
- "subnetName": null,
- "assignPublicIp": null,
- "publicIpSku": null,
- "securityGroup": { },
- "publicIps": [ ],
- "enableIPForwarding": null,
- "additionalIpConfigurations": [ ],
- "privateIpAddresses": [ ],
- "applicationSecurityGroups": [ ]
}
]
}, - "login": {
- "userName": "spotinst",
- "sshPublicKey": "ssh-rsa"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": null,
- "resourceGroupName": null,
- "name": null,
- "sku": null,
- "backendPoolNames": [ ]
}
]
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "extensions": [
- {
- "name": "extensionName",
- "type": "customScript",
- "publisher": "MMicrosoft.Azure.Extensions",
- "apiVersion": "2.0",
- "minorVersionAutoUpgrade": true,
- "publicSettings": { },
- "protectedSettings": { }
}
], - "dataDisks": [
- {
- "sizeGB": 1,
- "lun": 1,
- "type": "Standard_LRS"
}
], - "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}, - "bootDiagnostics": {
- "isEnabled": true,
- "type": "unmanaged",
}, - "secrets": [
- {
- "sourceVault": {
- "resourceGroupName": null,
- "name": null
}, - "vaultCertificates": [
- { }
]
}
]
}, - "zones": [
- 1
], - "preferredZones": [
- 1
]
}, - "health": {
- "healthCheckTypes": [
- "vmState"
], - "gracePeriod": 120,
- "autoHealing": true,
- "unhealthyDuration": 360
}, - "createdAt": "2018-10-10T10:50:29.000+0000",
- "updatedAt": "2018-11-01T10:50:29.000+0000"
}
}
], - "count": 1,
- "kind": "spotinst:azure:compute:elastigroup:import"
}
}Given a virtual machine, constructs a valid group configuration based on the virtual machine and returns it.
| resourceGroupName | string Example: ExampleResourceGroup |
| virtualMachineName | string Example: MyExampleVirtualMachineImport |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "name": "MyExampleVirtualMachineImport",
- "region": "westus2",
- "resourceGroupName": "ExampleResourceGroup",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "strategy": {
- "spotPercentage": 50,
- "drainingTimeout": 30,
- "fallbackToOd": true,
- "revertToSpot": {
- "performAt": "timeWindow"
}, - "optimizationWindows": [
- "Mon:03:00-Wed:02:30"
], - "signals": [
- {
- "type": "vmReady",
- "timeout": 180
}
]
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "Average",
- "unit": "percent",
- "threshold": 0.75,
- "namespace": "Microsoft.Network/applicationGateways",
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "dimenstions": [
- {
- "name": null,
- "value": null
}, - {
- "name": null,
- "value": null
}
], - "operator": "gte",
- "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 0,
- "minimum": 0,
- "maximum": 0
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "Average",
- "unit": "percent",
- "threshold": 0.25,
- "namespace": "Microsoft.Network/applicationGateways",
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "dimenstions": [
- {
- "name": null,
- "value": null
}, - {
- "name": null,
- "value": null
}
], - "operator": "lte",
- "action": {
- "type": "adjustment",
- "adjustment": "2",
- "target": 0,
- "minimum": 0,
- "maximum": 0
}
}
]
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "spotSizes": "string",
- "preferredSpotSizes": [
- "standard_a2_v2"
]
}, - "os": "Linux",
- "launchSpecification": {
- "customData": "",
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "custom": {
- "resourceGroupName": "spotinst-azure",
- "name": "custom-image-name"
}, - "gallery": {
- "resourceGroupName": "spotinst-azure",
- "galleryName": "gallery-name",
- "imageName": "gallery-image-name",
- "version": "0.0.1"
}
}, - "network": {
- "resourceGroupName": "subnetResourceGroup",
- "virtualNetworkName": "vname",
- "networkInterfaces": [
- {
- "isPrimary": null,
- "subnetName": null,
- "assignPublicIp": null,
- "publicIpSku": null,
- "securityGroup": { },
- "publicIps": [ ],
- "enableIPForwarding": null,
- "additionalIpConfigurations": [ ],
- "privateIpAddresses": [ ],
- "applicationSecurityGroups": [ ]
}
]
}, - "login": {
- "userName": "spotinst",
- "sshPublicKey": "ssh-rsa"
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": null,
- "resourceGroupName": null,
- "name": null,
- "sku": null,
- "backendPoolNames": [ ]
}
]
}, - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "extensions": [
- {
- "name": "extensionName",
- "type": "customScript",
- "publisher": "MMicrosoft.Azure.Extensions",
- "apiVersion": "2.0",
- "minorVersionAutoUpgrade": true,
- "publicSettings": { },
- "protectedSettings": { }
}
], - "dataDisks": [
- {
- "sizeGB": 1,
- "lun": 1,
- "type": "Standard_LRS"
}
], - "osDisk": {
- "type": "Standard_LRS",
- "sizeGB": 30
}, - "bootDiagnostics": {
- "isEnabled": true,
- "type": "unmanaged",
}, - "secrets": [
- {
- "sourceVault": {
- "resourceGroupName": null,
- "name": null
}, - "vaultCertificates": [
- { }
]
}
]
}, - "zones": [
- 1
], - "preferredZones": [
- 1
]
}, - "health": {
- "healthCheckTypes": [
- "vmState"
], - "gracePeriod": 120,
- "autoHealing": true,
- "unhealthyDuration": 360
}, - "createdAt": "2018-10-10T10:50:29.000+0000",
- "updatedAt": "2018-11-01T10:50:29.000+0000"
}
}
], - "count": 1,
- "kind": "spotinst:azure:compute:elastigroup:import"
}
}The VM signal API is used for notifying Spot about the VM state so that Spot can act accordingly. Supported signals are vmReady – Whenever this signal is sent, Spot will register the instance to the relevant Load Balancer and Application Gateway. vmReadyToShutdown – When this signal is received after a vm is detached; we will immediately terminate the vm. You must define the expected signals for your Elastigroup in the group configuration.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| signalType required | String Enum: "vmReady" "vmReadyToShutdown" The specific signal you want to trigger. |
| vmName required | string The virtual machine ID the signal refers to. |
{- "vmName": "vm-123456",
- "signalType": "vmReady"
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Protect virtual machines in Elastigroup cluster.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| vmName required | string Example: i-f2a44ba41875 The virtual machine name to protect. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| ttlInMinutes | integer Example: ttlInMinutes=180 Specify a TTL (in minutes) for this protection, meaning, for how long the protection will be valid for. (If null, infinite protection) |
{- "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Un-Protect virtual machines in Elastigroup cluster.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| vmName required | string Example: i-f2a44ba41875 The virtual machine name to remove protection. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}You can fetch a Elastigroup's Elastilog via the Spot API, in order to be able to consume elastilog from various tools used for log storing and analyzing. Logs have retention of 3 months back from today, so minimal fromDate should be up to 3 months back at runtime.
| groupId required | string Example: sig-12345 The Spot Elastigroup ID you want to update |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | unix (string) or dateTime (string) Example: fromDate=2020-09-01 or fromDate=1598918400000 Get items on or after this date (ISO 8601 or Unix timestamp) |
| limit | integer [ 0 .. 1000 ] Example: limit=500 Maximum number of lines to extract in a response. Max value allowed - 1000. Default is 500, if got null. |
| RESOURCE_ID | string Example: RESOURCE_ID=vm-12345678 Filter log extracted entires related to a specific resource id Default: Null |
| SEVERITY | string Enum: "DEBUG" "WARN" "INFO" "ALL" "ERROR" Example: SEVERITY=WARN Severity of log entries to extract. |
required | unix (string) or dateTime (string) Example: toDate=2020-09-01 or toDate=1598918400000 Get items on or before this date (ISO 8601 or Unix timestamp) |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "message": "Successfully detached [vm-b4ab9da435aa]",
- "severity": "INFO",
- "createdAt": "2020-07-16T16:46:49.000Z"
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:group:log"
}
}Elastigroup for Microsoft Azure Scale Set
List all Azure Elastigroups for a Spot Account
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "id": "sig-123456789",
- "name": "spotinst-group",
- "region": "eastus",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.25,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "lte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
]
}, - "strategy": {
- "lowPriorityPercentage": 0,
- "odCount": 0,
- "drainingTimeout": 0
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "lowPrioritySizes": [
- "standard_a2_v2"
]
}, - "product": "Linux",
- "health": {
- "autoHealing": true,
- "healthCheckType": "INSTANCE_STATE",
- "gracePeriod": 120
}, - "launchSpecification": {
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "shutdownScript": "IyEvdXNyL2Jpbi9lbnYgYmFzaAoiR29vZGJ5ZSBvbGQgaW5zdGFuY2Ui",
- "custom": {
- "resourceGroupName": "spotinst-azure",
- "imageName": "custom-image-name"
}
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": null,
- "balancerId": null,
- "targetSetId": null,
- "autoWeight": null
}
]
}, - "userData": "string",
- "managedServiceIdentities": [
- {
- "name": null,
- "example": null
}
], - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "network": {
- "virtualNetworkName": "vname",
- "subnetName": "my-subnet-name",
- "resourceGroupName": "subnetResourceGroup",
- "assignPublicIp": null,
- "additionalIpConfigurations": [
- {
- "name": null,
- "privateIpAddressVersion": null
}
]
}, - "extensions": [
- {
- "autoUpgradeMinorVersion": true,
- "name": "k8s-agentpool1-38611891-vmss-computeAksLinuxBilling",
- "protectedSettings": null,
- "publisher": "Microsoft.AKS",
- "type": "Compute.AKS-Engine.Linux.Billing",
- "typeHandlerVersion": "1.0"
}
], - "customData": "string",
- "login": {
- "userName": "spotinst",
- "sshPublicKey": "string",
- "password": "string"
}
}
}, - "thirdPartiesIntegration": {
- "kubernetes": {
- "clusterIdentifier": "aks-engine-cluser"
}, - "hpcGridEngine": {
- "clusterId": "spotinst-uge-cluster",
- "queues": [
- {
- "name": "burst.q"
}
], - "distribution": "sge",
- "tortuga": {
- "softwareProfile": "execd",
- "hardwareProfile": "execd-elastigroup"
}
}
}
}
}
], - "count": 1,
- "kind": "string"
}
}Create a new Azure Elastigroup
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object (Azure Elastigroup) Azure Elastigroup Configuration |
{- "group": {
- "name": "spotinst-group",
- "region": "eastus",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "scaling": {
- "up": {
- "policyName": "cpuScale",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "TestAppGateway"
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2",
- "minTargetCapacity": null,
- "target": 23,
- "minimum": 20,
- "maximum": 25
}
}, - "down": {
- "policyName": "cpuScale",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "TestAppGateway"
}
], - "action": {
- "type": "adjustment",
- "target": 1,
- "minimum": 1,
- "maximum": 1,
- "adjustment": "2"
}
}
}, - "strategy": {
- "lowPriorityPercentage": 100,
- "onDemandCount": 0,
- "drainingTimeout": 120
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_b1s"
], - "lowPrioritySizes": [
- "standard_a2_v2"
]
}, - "product": "Linux",
- "health": {
- "autoHealing": true,
- "healthCheckType": "INSTANCE_STATE",
- "gracePeriod": 120,
- "unhealthyDuration": 360
}, - "launchSpecification": {
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "custom": {
- "resourceGroupName": "spotinst-azure",
- "imageName": "custom-image-name"
}
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "MULTAI_TARGET_SET",
- "balancerId": "lb-1ee2e3q",
- "targetSetId": "ts-3eq",
- "autoWeight": true
}
]
}, - "userData": "IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=",
- "managedServiceIdentities": [
- {
- "resourceGroupName": "Resourse Group 1",
- "name": "Test"
}
], - "shutdownScript": "IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=",
- "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "network": {
- "virtualNetworkName": "vname",
- "subnetName": "my-subnet-name",
- "resourceGroupName": "subnetResourceGroup",
- "assignPublicIp": true,
- "additionalIPConfigurations": [
- {
- "name": "config1",
- "privateIpAddressVersion": "IPv4"
}
]
}, - "extensions": [
- {
- "autoUpgradeMinorVersion": true,
- "name": "k8s-agentpool1-38611891-vmss-computeAksLinuxBilling",
- "protectedSettings": {
- "commandToExecute": "string"
}, - "publisher": "Microsoft.AKS",
- "type": "Compute.AKS-Engine.Linux.Billing",
- "typeHandlerVersion": "1.0"
}
], - "customData": "IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=",
- "login": [
- {
- "userName": "spotinst",
- "sshPublicKey": "string",
- "password": "string"
}
]
}
}, - "thirdPartiesIntegration": {
- "kubernetes": {
- "clusterIdentifier": "aks-engine-cluser",
- "autoScale": {
- "isEnabled": true,
- "isAutoConfig": false,
- "cooldown": 180,
- "down": {
- "maxScaleDownPercentage": 50
}, - "headroom": {
- "cpuPerUnit": 2,
- "memoryPerUnit": 2,
- "gpuPerUnit": 2,
- "numOfUnits": 2
}, - "labels": [
- {
- "key": "group",
- "value": "microservices"
}
], - "resourceLimits": {
- "maxVCpu": 4,
- "maxMemoryGib": 4
}
}
}, - "hpcGridEngine": {
- "clusterId": "spotinst-uge-cluster",
- "queues": [
- {
- "name": "burst.q"
}
], - "distribution": "sge"
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "id": "sig-123456789",
- "name": "spotinst-group",
- "region": "eastus",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.25,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "lte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
]
}, - "strategy": {
- "lowPriorityPercentage": 0,
- "odCount": 0,
- "drainingTimeout": 0
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "lowPrioritySizes": [
- "standard_a2_v2"
]
}, - "product": "Linux",
- "health": {
- "autoHealing": true,
- "healthCheckType": "INSTANCE_STATE",
- "gracePeriod": 120
}, - "launchSpecification": {
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "shutdownScript": "IyEvdXNyL2Jpbi9lbnYgYmFzaAoiR29vZGJ5ZSBvbGQgaW5zdGFuY2Ui",
- "custom": {
- "resourceGroupName": "spotinst-azure",
- "imageName": "custom-image-name"
}
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": null,
- "balancerId": null,
- "targetSetId": null,
- "autoWeight": null
}
]
}, - "userData": "string",
- "managedServiceIdentities": [
- {
- "name": null,
- "example": null
}
], - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "network": {
- "virtualNetworkName": "vname",
- "subnetName": "my-subnet-name",
- "resourceGroupName": "subnetResourceGroup",
- "assignPublicIp": null,
- "additionalIpConfigurations": [
- {
- "name": null,
- "privateIpAddressVersion": null
}
]
}, - "extensions": [
- {
- "autoUpgradeMinorVersion": true,
- "name": "k8s-agentpool1-38611891-vmss-computeAksLinuxBilling",
- "protectedSettings": null,
- "publisher": "Microsoft.AKS",
- "type": "Compute.AKS-Engine.Linux.Billing",
- "typeHandlerVersion": "1.0"
}
], - "customData": "string",
- "login": {
- "userName": "spotinst",
- "sshPublicKey": "string",
- "password": "string"
}
}
}, - "thirdPartiesIntegration": {
- "kubernetes": {
- "clusterIdentifier": "aks-engine-cluser"
}, - "hpcGridEngine": {
- "clusterId": "spotinst-uge-cluster",
- "queues": [
- {
- "name": "burst.q"
}
], - "distribution": "sge",
- "tortuga": {
- "softwareProfile": "execd",
- "hardwareProfile": "execd-elastigroup"
}
}
}
}
}
], - "count": 1,
- "kind": "string"
}
}Delete an Elastigroup Azure
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}List all properties for single Azure Elastigroup
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "id": "sig-123456789",
- "name": "spotinst-group",
- "region": "eastus",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.25,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "lte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
]
}, - "strategy": {
- "lowPriorityPercentage": 0,
- "odCount": 0,
- "drainingTimeout": 0
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "lowPrioritySizes": [
- "standard_a2_v2"
]
}, - "product": "Linux",
- "health": {
- "autoHealing": true,
- "healthCheckType": "INSTANCE_STATE",
- "gracePeriod": 120
}, - "launchSpecification": {
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "shutdownScript": "IyEvdXNyL2Jpbi9lbnYgYmFzaAoiR29vZGJ5ZSBvbGQgaW5zdGFuY2Ui",
- "custom": {
- "resourceGroupName": "spotinst-azure",
- "imageName": "custom-image-name"
}
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": null,
- "balancerId": null,
- "targetSetId": null,
- "autoWeight": null
}
]
}, - "userData": "string",
- "managedServiceIdentities": [
- {
- "name": null,
- "example": null
}
], - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "network": {
- "virtualNetworkName": "vname",
- "subnetName": "my-subnet-name",
- "resourceGroupName": "subnetResourceGroup",
- "assignPublicIp": null,
- "additionalIpConfigurations": [
- {
- "name": null,
- "privateIpAddressVersion": null
}
]
}, - "extensions": [
- {
- "autoUpgradeMinorVersion": true,
- "name": "k8s-agentpool1-38611891-vmss-computeAksLinuxBilling",
- "protectedSettings": null,
- "publisher": "Microsoft.AKS",
- "type": "Compute.AKS-Engine.Linux.Billing",
- "typeHandlerVersion": "1.0"
}
], - "customData": "string",
- "login": {
- "userName": "spotinst",
- "sshPublicKey": "string",
- "password": "string"
}
}
}, - "thirdPartiesIntegration": {
- "kubernetes": {
- "clusterIdentifier": "aks-engine-cluser"
}, - "hpcGridEngine": {
- "clusterId": "spotinst-uge-cluster",
- "queues": [
- {
- "name": "burst.q"
}
], - "distribution": "sge",
- "tortuga": {
- "softwareProfile": "execd",
- "hardwareProfile": "execd-elastigroup"
}
}
}
}
}
], - "count": 1,
- "kind": "string"
}
}Update an Azure Elastigroup
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object |
{- "group": {
- "name": "spotinst-group",
- "region": "eastus",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "TestAppGateway"
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.25,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "lte",
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "TestAppGateway"
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
]
}, - "strategy": {
- "lowPriorityPercentage": 0,
- "odCount": 0,
- "drainingTimeout": 0
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "lowPrioritySizes": [
- "standard_a2_v2"
]
}, - "product": "Linux",
- "health": {
- "autoHealing": true,
- "healthCheckType": "INSTANCE_STATE",
- "gracePeriod": 120
}, - "launchSpecification": {
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "shutdownScript": "IyEvdXNyL2Jpbi9lbnYgYmFzaAoiR29vZGJ5ZSBvbGQgaW5zdGFuY2Ui",
- "custom": {
- "resourceGroupName": "spotinst-azure",
- "imageName": "custom-image-name"
}
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "MULTAI_TARGET_SET",
- "balancerId": "lb-1ee2e3q",
- "targetSetId": "ts-3eq",
- "autoWeight": true
}
]
}, - "userData": "string",
- "managedServiceIdentities": [
- {
- "name": null,
- "example": null
}
], - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "network": {
- "virtualNetworkName": "vname",
- "subnetName": "my-subnet-name",
- "resourceGroupName": "subnetResourceGroup",
- "assignPublicIp": null,
- "additionalIpConfigurations": [
- {
- "name": "config1",
- "privateIpAddressVersion": "IPv4"
}
]
}, - "extensions": [
- {
- "autoUpgradeMinorVersion": true,
- "name": "k8s-agentpool1-38611891-vmss-computeAksLinuxBilling",
- "protectedSettings": null,
- "publisher": "Microsoft.AKS",
- "type": "Compute.AKS-Engine.Linux.Billing",
- "typeHandlerVersion": "1.0"
}
], - "customData": "string",
- "login": {
- "userName": "spotinst",
- "sshPublicKey": "string",
- "password": "string"
}
}
}, - "thirdPartiesIntegration": {
- "kubernetes": {
- "clusterIdentifier": "aks-engine-cluser"
}, - "hpcGridEngine": {
- "clusterId": "spotinst-uge-cluster",
- "queues": [
- {
- "name": "burst.q"
}
], - "distribution": "sge",
- "tortuga": {
- "softwareProfile": "execd",
- "hardwareProfile": "execd-elastigroup"
}
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "id": "sig-123456789",
- "name": "spotinst-group",
- "region": "eastus",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.25,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "lte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
]
}, - "strategy": {
- "lowPriorityPercentage": 0,
- "odCount": 0,
- "drainingTimeout": 0
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "lowPrioritySizes": [
- "standard_a2_v2"
]
}, - "product": "Linux",
- "health": {
- "autoHealing": true,
- "healthCheckType": "INSTANCE_STATE",
- "gracePeriod": 120
}, - "launchSpecification": {
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "shutdownScript": "IyEvdXNyL2Jpbi9lbnYgYmFzaAoiR29vZGJ5ZSBvbGQgaW5zdGFuY2Ui",
- "custom": {
- "resourceGroupName": "spotinst-azure",
- "imageName": "custom-image-name"
}
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": null,
- "balancerId": null,
- "targetSetId": null,
- "autoWeight": null
}
]
}, - "userData": "string",
- "managedServiceIdentities": [
- {
- "name": null,
- "example": null
}
], - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "network": {
- "virtualNetworkName": "vname",
- "subnetName": "my-subnet-name",
- "resourceGroupName": "subnetResourceGroup",
- "assignPublicIp": null,
- "additionalIpConfigurations": [
- {
- "name": null,
- "privateIpAddressVersion": null
}
]
}, - "extensions": [
- {
- "autoUpgradeMinorVersion": true,
- "name": "k8s-agentpool1-38611891-vmss-computeAksLinuxBilling",
- "protectedSettings": null,
- "publisher": "Microsoft.AKS",
- "type": "Compute.AKS-Engine.Linux.Billing",
- "typeHandlerVersion": "1.0"
}
], - "customData": "string",
- "login": {
- "userName": "spotinst",
- "sshPublicKey": "string",
- "password": "string"
}
}
}, - "thirdPartiesIntegration": {
- "kubernetes": {
- "clusterIdentifier": "aks-engine-cluser"
}, - "hpcGridEngine": {
- "clusterId": "spotinst-uge-cluster",
- "queues": [
- {
- "name": "burst.q"
}
], - "distribution": "sge",
- "tortuga": {
- "softwareProfile": "execd",
- "hardwareProfile": "execd-elastigroup"
}
}
}
}
}
], - "count": 1,
- "kind": "string"
}
}Get the status for all instances that are memebers of the Elastigroup
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "instanceId": "ec5410ea-fec7-4a03-a989-3b27b7ee2ed5",
- "region": "eastus",
- "vmSize": "standard_a1_v2",
- "lifeCycle": "low-priority",
- "privateIp": "10.0.0.8",
- "publicIp": "168.62.168.93",
- "state": "running",
- "createdAt": "2018-06-20T11:16:32.000Z"
}
], - "count": 1,
- "kind": "string"
}
}Detach one or more instances from an Azure Elastigroup
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| drainingTimeout | integer |
| instancesToDetach | Array of strings |
| shouldDecrementTargetCapacity | boolean |
{- "instancesToDetach": [
- "string"
], - "shouldDecrementTargetCapacity": true,
- "drainingTimeout": 300
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "detachedOd": [
- "string"
], - "detachedLowPriority": [
- "string"
]
}
], - "count": 1,
- "kind": "string"
}
}Historical list of all deployments for an Azure Elastigroup
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId | string Example: accountId=act-123abc Your Spotinst accountid associated with your token |
| limit | integer Example: limit=5 Limits results |
| sort | integer Example: sort=created:ASC Field to sort by the results |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sbgd-9876",
- "status": "ROLL_STARTING"
}
], - "count": 1,
- "kind": "string"
}
}Start a new Azure Elastigroup deployment
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| batchSizePercentage | integer (Batch Size Percentage) Indicates (in percentage) the batch size of the roll (meaning, how many nodes to replace in each batch) |
| gracePeriod | integer (Grace Period) Indicates (in seconds) the timeout to wait until node become healthy in the ELB |
| healthCheckType | string (Health Check Type) Define a health check type. valid values: mlb, node_state, none (wait the entire grace period for each batch). If no value is set the roll will use the group’s auto-healing health check. |
{- "batchSizePercentage": 50,
- "gracePeriod": 300,
- "healthCheckType": "INSTANCE_STATE"
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/compute/azure/group/sig-12345/roll",
- "method": "PUT",
- "timestamp": "2016-01-21T17:12:51.451Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group",
- "items": [
- {
- "id": "sbgd-9876",
- "status": "ROLL_STARTING",
- "currentBatch": 1,
- "numOfBatches": 2,
- "progress": {
- "unit": "percentage",
- "value": 10
}, - "groupId": "sig-12345"
}
], - "count": 1
}
}Get status of a specific roll
| groupId required | string Example: sig-12345 The Elasticgroup id you want to roll |
| rollId required | string Example: sbgd-9876 The roll id you want to query |
| accountId | string Example: accountId=act-123abc Your Spotinst accountid associated with your token |
{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/compute/azure/group/sig-12345/roll/sbgd-dfb956b4",
- "method": "GET",
- "timestamp": "2016-01-21T17:12:51.451Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group",
- "items": [
- {
- "id": "sbgd-9876",
- "status": "ROLL_FINISHED",
- "progress": {
- "unit": "percent",
- "value": 100
}, - "createdAt": "2017-01-31T13:54:53.000+0000",
- "updatedAt": "2017-01-31T14:26:37.000+0000"
}
], - "count": 1
}
}Update an Elastigroup Azure
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object |
{- "group": {
- "name": "spotinst-group",
- "region": "eastus",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "TestAppGateway"
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.25,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "lte",
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "TestAppGateway"
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
]
}, - "strategy": {
- "lowPriorityPercentage": 0,
- "odCount": 0,
- "drainingTimeout": 0
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "lowPrioritySizes": [
- "standard_a2_v2"
]
}, - "product": "Linux",
- "health": {
- "autoHealing": true,
- "healthCheckType": "INSTANCE_STATE",
- "gracePeriod": 120
}, - "launchSpecification": {
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "shutdownScript": "IyEvdXNyL2Jpbi9lbnYgYmFzaAoiR29vZGJ5ZSBvbGQgaW5zdGFuY2Ui",
- "custom": {
- "resourceGroupName": "spotinst-azure",
- "imageName": "custom-image-name"
}
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "MULTAI_TARGET_SET",
- "balancerId": "lb-1ee2e3q",
- "targetSetId": "ts-3eq",
- "autoWeight": true
}
]
}, - "userData": "string",
- "managedServiceIdentities": [
- {
- "name": null,
- "example": null
}
], - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "network": {
- "virtualNetworkName": "vname",
- "subnetName": "my-subnet-name",
- "resourceGroupName": "subnetResourceGroup",
- "assignPublicIp": null,
- "additionalIpConfigurations": [
- {
- "name": "config1",
- "privateIpAddressVersion": "IPv4"
}
]
}, - "extensions": [
- {
- "autoUpgradeMinorVersion": true,
- "name": "k8s-agentpool1-38611891-vmss-computeAksLinuxBilling",
- "protectedSettings": null,
- "publisher": "Microsoft.AKS",
- "type": "Compute.AKS-Engine.Linux.Billing",
- "typeHandlerVersion": "1.0"
}
], - "customData": "string",
- "login": {
- "userName": "spotinst",
- "sshPublicKey": "string",
- "password": "string"
}
}
}, - "thirdPartiesIntegration": {
- "kubernetes": {
- "clusterIdentifier": "aks-engine-cluser"
}, - "hpcGridEngine": {
- "clusterId": "spotinst-uge-cluster",
- "queues": [
- {
- "name": "burst.q"
}
], - "distribution": "sge",
- "tortuga": {
- "softwareProfile": "execd",
- "hardwareProfile": "execd-elastigroup"
}
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "id": "sig-123456789",
- "name": "spotinst-group",
- "region": "eastus",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.25,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "lte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
]
}, - "strategy": {
- "lowPriorityPercentage": 0,
- "odCount": 0,
- "drainingTimeout": 0
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "lowPrioritySizes": [
- "standard_a2_v2"
]
}, - "product": "Linux",
- "health": {
- "autoHealing": true,
- "healthCheckType": "INSTANCE_STATE",
- "gracePeriod": 120
}, - "launchSpecification": {
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "shutdownScript": "IyEvdXNyL2Jpbi9lbnYgYmFzaAoiR29vZGJ5ZSBvbGQgaW5zdGFuY2Ui",
- "custom": {
- "resourceGroupName": "spotinst-azure",
- "imageName": "custom-image-name"
}
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": null,
- "balancerId": null,
- "targetSetId": null,
- "autoWeight": null
}
]
}, - "userData": "string",
- "managedServiceIdentities": [
- {
- "name": null,
- "example": null
}
], - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "network": {
- "virtualNetworkName": "vname",
- "subnetName": "my-subnet-name",
- "resourceGroupName": "subnetResourceGroup",
- "assignPublicIp": null,
- "additionalIpConfigurations": [
- {
- "name": null,
- "privateIpAddressVersion": null
}
]
}, - "extensions": [
- {
- "autoUpgradeMinorVersion": true,
- "name": "k8s-agentpool1-38611891-vmss-computeAksLinuxBilling",
- "protectedSettings": null,
- "publisher": "Microsoft.AKS",
- "type": "Compute.AKS-Engine.Linux.Billing",
- "typeHandlerVersion": "1.0"
}
], - "customData": "string",
- "login": {
- "userName": "spotinst",
- "sshPublicKey": "string",
- "password": "string"
}
}
}, - "thirdPartiesIntegration": {
- "kubernetes": {
- "clusterIdentifier": "aks-engine-cluser"
}, - "hpcGridEngine": {
- "clusterId": "spotinst-uge-cluster",
- "queues": [
- {
- "name": "burst.q"
}
], - "distribution": "sge",
- "tortuga": {
- "softwareProfile": "execd",
- "hardwareProfile": "execd-elastigroup"
}
}
}
}
}
], - "count": 1,
- "kind": "string"
}
}Describe a single deployment for an Azure Elastigroup
| deploymentId required | string Example: sbgd-9876 Azure Elastigroup ID |
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sbgd-9876",
- "status": "ROLL_STARTING"
}
], - "count": 1,
- "kind": "string"
}
}Stop a deployment
| deploymentId required | string Example: sbgd-9876 Azure Elastigroup ID |
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object |
{- "roll": {
- "status": "ROLL_STOPPED"
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}List all Azure Tasks for a Spot Account
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "id": "sig-123456789",
- "name": "spotinst-group",
- "region": "eastus",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.25,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "lte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
]
}, - "strategy": {
- "lowPriorityPercentage": 0,
- "odCount": 0,
- "drainingTimeout": 0
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "lowPrioritySizes": [
- "standard_a2_v2"
]
}, - "product": "Linux",
- "health": {
- "autoHealing": true,
- "healthCheckType": "INSTANCE_STATE",
- "gracePeriod": 120
}, - "launchSpecification": {
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "shutdownScript": "IyEvdXNyL2Jpbi9lbnYgYmFzaAoiR29vZGJ5ZSBvbGQgaW5zdGFuY2Ui",
- "custom": {
- "resourceGroupName": "spotinst-azure",
- "imageName": "custom-image-name"
}
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": null,
- "balancerId": null,
- "targetSetId": null,
- "autoWeight": null
}
]
}, - "userData": "string",
- "managedServiceIdentities": [
- {
- "name": null,
- "example": null
}
], - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "network": {
- "virtualNetworkName": "vname",
- "subnetName": "my-subnet-name",
- "resourceGroupName": "subnetResourceGroup",
- "assignPublicIp": null,
- "additionalIpConfigurations": [
- {
- "name": null,
- "privateIpAddressVersion": null
}
]
}, - "extensions": [
- {
- "autoUpgradeMinorVersion": true,
- "name": "k8s-agentpool1-38611891-vmss-computeAksLinuxBilling",
- "protectedSettings": null,
- "publisher": "Microsoft.AKS",
- "type": "Compute.AKS-Engine.Linux.Billing",
- "typeHandlerVersion": "1.0"
}
], - "customData": "string",
- "login": {
- "userName": "spotinst",
- "sshPublicKey": "string",
- "password": "string"
}
}
}, - "thirdPartiesIntegration": {
- "kubernetes": {
- "clusterIdentifier": "aks-engine-cluser"
}, - "hpcGridEngine": {
- "clusterId": "spotinst-uge-cluster",
- "queues": [
- {
- "name": "burst.q"
}
], - "distribution": "sge",
- "tortuga": {
- "softwareProfile": "execd",
- "hardwareProfile": "execd-elastigroup"
}
}
}
}
}
], - "count": 1,
- "kind": "string"
}
}Create a new Azure Task
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object |
{- "group": {
- "name": "spotinst-group",
- "region": "eastus",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "TestAppGateway"
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.25,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "lte",
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "TestAppGateway"
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
]
}, - "strategy": {
- "lowPriorityPercentage": 0,
- "odCount": 0,
- "drainingTimeout": 0
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "lowPrioritySizes": [
- "standard_a2_v2"
]
}, - "product": "Linux",
- "health": {
- "autoHealing": true,
- "healthCheckType": "INSTANCE_STATE",
- "gracePeriod": 120
}, - "launchSpecification": {
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "shutdownScript": "IyEvdXNyL2Jpbi9lbnYgYmFzaAoiR29vZGJ5ZSBvbGQgaW5zdGFuY2Ui",
- "custom": {
- "resourceGroupName": "spotinst-azure",
- "imageName": "custom-image-name"
}
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "MULTAI_TARGET_SET",
- "balancerId": "lb-1ee2e3q",
- "targetSetId": "ts-3eq",
- "autoWeight": true
}
]
}, - "userData": "string",
- "managedServiceIdentities": [
- {
- "name": null,
- "example": null
}
], - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "network": {
- "virtualNetworkName": "vname",
- "subnetName": "my-subnet-name",
- "resourceGroupName": "subnetResourceGroup",
- "assignPublicIp": null,
- "additionalIpConfigurations": [
- {
- "name": "config1",
- "privateIpAddressVersion": "IPv4"
}
]
}, - "extensions": [
- {
- "autoUpgradeMinorVersion": true,
- "name": "k8s-agentpool1-38611891-vmss-computeAksLinuxBilling",
- "protectedSettings": null,
- "publisher": "Microsoft.AKS",
- "type": "Compute.AKS-Engine.Linux.Billing",
- "typeHandlerVersion": "1.0"
}
], - "customData": "string",
- "login": {
- "userName": "spotinst",
- "sshPublicKey": "string",
- "password": "string"
}
}
}, - "thirdPartiesIntegration": {
- "kubernetes": {
- "clusterIdentifier": "aks-engine-cluser"
}, - "hpcGridEngine": {
- "clusterId": "spotinst-uge-cluster",
- "queues": [
- {
- "name": "burst.q"
}
], - "distribution": "sge",
- "tortuga": {
- "softwareProfile": "execd",
- "hardwareProfile": "execd-elastigroup"
}
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "id": "sig-123456789",
- "name": "spotinst-group",
- "region": "eastus",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.25,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "lte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
]
}, - "strategy": {
- "lowPriorityPercentage": 0,
- "odCount": 0,
- "drainingTimeout": 0
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "lowPrioritySizes": [
- "standard_a2_v2"
]
}, - "product": "Linux",
- "health": {
- "autoHealing": true,
- "healthCheckType": "INSTANCE_STATE",
- "gracePeriod": 120
}, - "launchSpecification": {
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "shutdownScript": "IyEvdXNyL2Jpbi9lbnYgYmFzaAoiR29vZGJ5ZSBvbGQgaW5zdGFuY2Ui",
- "custom": {
- "resourceGroupName": "spotinst-azure",
- "imageName": "custom-image-name"
}
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": null,
- "balancerId": null,
- "targetSetId": null,
- "autoWeight": null
}
]
}, - "userData": "string",
- "managedServiceIdentities": [
- {
- "name": null,
- "example": null
}
], - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "network": {
- "virtualNetworkName": "vname",
- "subnetName": "my-subnet-name",
- "resourceGroupName": "subnetResourceGroup",
- "assignPublicIp": null,
- "additionalIpConfigurations": [
- {
- "name": null,
- "privateIpAddressVersion": null
}
]
}, - "extensions": [
- {
- "autoUpgradeMinorVersion": true,
- "name": "k8s-agentpool1-38611891-vmss-computeAksLinuxBilling",
- "protectedSettings": null,
- "publisher": "Microsoft.AKS",
- "type": "Compute.AKS-Engine.Linux.Billing",
- "typeHandlerVersion": "1.0"
}
], - "customData": "string",
- "login": {
- "userName": "spotinst",
- "sshPublicKey": "string",
- "password": "string"
}
}
}, - "thirdPartiesIntegration": {
- "kubernetes": {
- "clusterIdentifier": "aks-engine-cluser"
}, - "hpcGridEngine": {
- "clusterId": "spotinst-uge-cluster",
- "queues": [
- {
- "name": "burst.q"
}
], - "distribution": "sge",
- "tortuga": {
- "softwareProfile": "execd",
- "hardwareProfile": "execd-elastigroup"
}
}
}
}
}
], - "count": 1,
- "kind": "string"
}
}Delete an Elastigroup Azure
| groupId required | string Example: sig-12345 Elastigroup ID |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Update an Elastigroup Azure
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | object |
{- "group": {
- "name": "spotinst-group",
- "region": "eastus",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "TestAppGateway"
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.25,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "lte",
- "dimenstions": [
- {
- "name": "resourceName",
- "value": "TestAppGateway"
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
]
}, - "strategy": {
- "lowPriorityPercentage": 0,
- "odCount": 0,
- "drainingTimeout": 0
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "lowPrioritySizes": [
- "standard_a2_v2"
]
}, - "product": "Linux",
- "health": {
- "autoHealing": true,
- "healthCheckType": "INSTANCE_STATE",
- "gracePeriod": 120
}, - "launchSpecification": {
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "shutdownScript": "IyEvdXNyL2Jpbi9lbnYgYmFzaAoiR29vZGJ5ZSBvbGQgaW5zdGFuY2Ui",
- "custom": {
- "resourceGroupName": "spotinst-azure",
- "imageName": "custom-image-name"
}
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": "MULTAI_TARGET_SET",
- "balancerId": "lb-1ee2e3q",
- "targetSetId": "ts-3eq",
- "autoWeight": true
}
]
}, - "userData": "string",
- "managedServiceIdentities": [
- {
- "name": null,
- "example": null
}
], - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "network": {
- "virtualNetworkName": "vname",
- "subnetName": "my-subnet-name",
- "resourceGroupName": "subnetResourceGroup",
- "assignPublicIp": null,
- "additionalIpConfigurations": [
- {
- "name": "config1",
- "privateIpAddressVersion": "IPv4"
}
]
}, - "extensions": [
- {
- "autoUpgradeMinorVersion": true,
- "name": "k8s-agentpool1-38611891-vmss-computeAksLinuxBilling",
- "protectedSettings": null,
- "publisher": "Microsoft.AKS",
- "type": "Compute.AKS-Engine.Linux.Billing",
- "typeHandlerVersion": "1.0"
}
], - "customData": "string",
- "login": {
- "userName": "spotinst",
- "sshPublicKey": "string",
- "password": "string"
}
}
}, - "thirdPartiesIntegration": {
- "kubernetes": {
- "clusterIdentifier": "aks-engine-cluser"
}, - "hpcGridEngine": {
- "clusterId": "spotinst-uge-cluster",
- "queues": [
- {
- "name": "burst.q"
}
], - "distribution": "sge",
- "tortuga": {
- "softwareProfile": "execd",
- "hardwareProfile": "execd-elastigroup"
}
}
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "group": {
- "id": "sig-123456789",
- "name": "spotinst-group",
- "region": "eastus",
- "resourceGroupName": "spotinst-azure",
- "capacity": {
- "target": 8,
- "minimum": 2,
- "maximum": 10
}, - "scaling": {
- "up": [
- {
- "policyName": "cpuScaleUp",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.75,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "gte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
], - "down": [
- {
- "policyName": "cpuScaleDown",
- "metricName": "Percentage CPU",
- "statistic": "average",
- "threshold": 0.25,
- "period": 60,
- "evaluationPeriods": 3,
- "cooldown": 300,
- "namespace": "Microsoft.Network/applicationGateways",
- "operator": "lte",
- "dimenstions": [
- {
- "name": null,
- "value": null
}
], - "action": {
- "type": "adjustment",
- "adjustment": "2"
}
}
]
}, - "strategy": {
- "lowPriorityPercentage": 0,
- "odCount": 0,
- "drainingTimeout": 0
}, - "compute": {
- "vmSizes": {
- "odSizes": [
- "standard_a1_v1"
], - "lowPrioritySizes": [
- "standard_a2_v2"
]
}, - "product": "Linux",
- "health": {
- "autoHealing": true,
- "healthCheckType": "INSTANCE_STATE",
- "gracePeriod": 120
}, - "launchSpecification": {
- "image": {
- "marketplace": {
- "publisher": "OpenLogic",
- "offer": "CentOS",
- "sku": "7.3",
- "version": "7.3-1611"
}, - "shutdownScript": "IyEvdXNyL2Jpbi9lbnYgYmFzaAoiR29vZGJ5ZSBvbGQgaW5zdGFuY2Ui",
- "custom": {
- "resourceGroupName": "spotinst-azure",
- "imageName": "custom-image-name"
}
}, - "loadBalancersConfig": {
- "loadBalancers": [
- {
- "type": null,
- "balancerId": null,
- "targetSetId": null,
- "autoWeight": null
}
]
}, - "userData": "string",
- "managedServiceIdentities": [
- {
- "name": null,
- "example": null
}
], - "tags": [
- {
- "tagKey": "env",
- "tagValue": "staging"
}
], - "network": {
- "virtualNetworkName": "vname",
- "subnetName": "my-subnet-name",
- "resourceGroupName": "subnetResourceGroup",
- "assignPublicIp": null,
- "additionalIpConfigurations": [
- {
- "name": null,
- "privateIpAddressVersion": null
}
]
}, - "extensions": [
- {
- "autoUpgradeMinorVersion": true,
- "name": "k8s-agentpool1-38611891-vmss-computeAksLinuxBilling",
- "protectedSettings": null,
- "publisher": "Microsoft.AKS",
- "type": "Compute.AKS-Engine.Linux.Billing",
- "typeHandlerVersion": "1.0"
}
], - "customData": "string",
- "login": {
- "userName": "spotinst",
- "sshPublicKey": "string",
- "password": "string"
}
}
}, - "thirdPartiesIntegration": {
- "kubernetes": {
- "clusterIdentifier": "aks-engine-cluser"
}, - "hpcGridEngine": {
- "clusterId": "spotinst-uge-cluster",
- "queues": [
- {
- "name": "burst.q"
}
], - "distribution": "sge",
- "tortuga": {
- "softwareProfile": "execd",
- "hardwareProfile": "execd-elastigroup"
}
}
}
}
}
], - "count": 1,
- "kind": "string"
}
}Get costs per time filter.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
required | unix (string) or dateTime (string) Example: fromDate=2020-09-01 or fromDate=1598918400000 Get items on or after this date (ISO 8601 or Unix timestamp) |
required | unix (string) or dateTime (string) Example: toDate=2020-09-01 or toDate=1598918400000 Get items on or before this date (ISO 8601 or Unix timestamp) |
{- "request": {
- "id": "67582d0c-108b-4ef7-9fdc-d39678a30844",
- "url": "/azure/costs",
- "method": "GET",
- "timestamp": "2018-01-07T07:30:58.622Z"
}, - "response": {
- "kind": "spotinst:azure:costs",
- "items": [
- {
- "lowPriority": {
- "runningHours": 1470.8,
- "actualCosts": 107.3,
- "potentialCosts": 378.41,
- "savingsPercentage": 71.64
}
}
], - "count": 1
}
}Managed Instance is a Spot solution for launching and managing a single compute instance. On the AWS cloud, for a standard single instance workload, an On-Demand EC2 instance is launched. The instance is expected to be highly available, easily manageable, and integrate well with additional services and monitoring tools. For more information please review the concepts section.
Create a new Managed Instance resource.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object |
{- "managedInstance": {
- "name": "mi-test",
- "description": "This is my Managed Instance",
- "region": "us-east-1",
- "strategy": {
- "lifeCycle": "spot",
- "orientation": "availabilityOriented",
- "drainingTimeout": 0,
- "fallbackToOd": true,
- "utilizeReservedInstances": true,
- "optimizationWindows": [
- "Mon:03:00-Wed:02:30"
], - "revertToSpot": {
- "performAt": "timeWindow"
}
}, - "compute": {
- "subnetIds": [
- "subnet-79da021e"
], - "vpcId": "vpc-111",
- "elasticIp": "ip",
- "privateIp": "ip",
- "product": "Linux/UNIX",
- "launchSpecification": {
- "instanceTypes": {
- "preferredType": "t2.micro",
- "types": [
- "t2.micro"
]
}, - "ebsOptimized": false,
- "monitoring": false,
- "tenancy": "default",
- "iamRole": {
- "name": "name",
- "arn": "arn"
}, - "securityGroupIds": [
- "sg-0dfc2c8760df6fec7"
], - "imageId": "ami-01e24be29428c15b2",
- "keyPair": "labs-oregon",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "test1@spot.io"
}
], - "resourceTagSpecification": {
- "volumes": {
- "shouldTag": false
}, - "snapshots": {
- "shouldTag": true
}, - "enis": {
- "shouldTag": false
}, - "amis": {
- "shouldTag": true
}
}, - "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "shutdownScript": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "creditSpecification": {
- "cpuCredits": "unlimited"
}, - "networkInterfaces": [
- {
- "deviceIndex": 0,
- "associatePublicIpAddress": true,
- "associateIpv6Address": true
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvdcz",
- "ebs": {
- "iops": 0,
- "throughput": 125,
- "deleteOnTermination": true,
- "volumeSize": 12,
- "volumeType": "gp2"
}
}
]
}
}, - "integrations": {
- "loadBalancersConfig": {
- "loadBalancers": [
- {
- "name": "name",
- "arn": "arn",
- "type": "MULTAI_TARGET_SET",
- "balancerId": "lb-1ee2e3q",
- "targetSetId": "ts-3eq",
- "azAwareness": true,
- "autoWeight": true
}
]
}, - "route53": {
- "domains": [
- {
- "hostedZoneId": "Z00275642KS5ZZJFIQBCA",
- "recordSetType": "a",
- "spotinstAccountId": "act-1234",
- "recordSets": [
- {
- "usePublicIp": true,
- "name": "testa.spot.io"
}
]
}
]
}
}, - "scheduling": {
- "tasks": [
- {
- "taskType": "scale",
- "startTime": "2018-05-23T10:55:09.000Z",
- "cronExpression": "0 1 * * *",
- "isEnabled": true,
- "frequency": "hourly"
}
]
}, - "persistence": {
- "blockDevicesMode": "reattach",
- "persistRootDevice": true,
- "persistBlockDevices": true,
- "persistPrivateIp": true
}, - "healthCheck": {
- "type": "EC2",
- "autoHealing": true,
- "gracePeriod": 120,
- "unhealthyDuration": 120
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "managedInstance": {
- "name": "mi-test",
- "description": "This is my Managed Instance",
- "region": "us-east-1",
- "strategy": {
- "lifeCycle": "spot",
- "orientation": "availabilityOriented",
- "drainingTimeout": 0,
- "fallbackToOd": true,
- "utilizeReservedInstances": true,
- "optimizationWindows": [
- "Mon:03:00-Wed:02:30"
], - "revertToSpot": {
- "performAt": "timeWindow"
}
}, - "compute": {
- "subnetIds": [
- "subnet-79da021e"
], - "vpcId": "vpc-111",
- "elasticIp": "ip",
- "privateIp": "ip",
- "product": "Linux/UNIX",
- "launchSpecification": {
- "instanceTypes": {
- "preferredType": "t2.micro",
- "types": [
- "t2.micro"
]
}, - "ebsOptimized": false,
- "monitoring": false,
- "tenancy": "default",
- "iamRole": {
- "name": "name",
- "arn": "arn"
}, - "securityGroupIds": [
- "sg-0dfc2c8760df6fec7"
], - "imageId": "ami-01e24be29428c15b2",
- "keyPair": "labs-oregon",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "test1@spot.io"
}
], - "resourceTagSpecification": {
- "volumes": {
- "shouldTag": false
}, - "snapshots": {
- "shouldTag": true
}, - "enis": {
- "shouldTag": false
}, - "amis": {
- "shouldTag": true
}
}, - "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "shutdownScript": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "creditSpecification": {
- "cpuCredits": "unlimited"
}, - "networkInterfaces": [
- {
- "deviceIndex": 0,
- "associatePublicIpAddress": true,
- "associateIpv6Address": true
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvdcz",
- "ebs": {
- "iops": null,
- "throughput": null,
- "deleteOnTermination": null,
- "volumeSize": null,
- "volumeType": null
}
}
]
}
}, - "integrations": {
- "loadBalancersConfig": {
- "loadBalancers": [
- {
- "name": "name",
- "arn": "arn",
- "type": "MULTAI_TARGET_SET",
- "balancerId": "lb-1ee2e3q",
- "targetSetId": "ts-3eq",
- "azAwareness": true,
- "autoWeight": true
}
]
}, - "route53": {
- "domains": [
- {
- "hostedZoneId": "Z00275642KS5ZZJFIQBCA",
- "recordSetType": "a",
- "spotinstAccountId": "act-1234",
- "recordSets": [
- null
]
}
]
}
}, - "scheduling": {
- "tasks": [
- {
- "taskType": "scale",
- "startTime": "2018-05-23T10:55:09.000Z",
- "cronExpression": "0 1 * * *",
- "isEnabled": true,
- "frequency": "hourly"
}
]
}, - "persistence": {
- "blockDevicesMode": "reattach",
- "persistRootDevice": true,
- "persistBlockDevices": true,
- "persistPrivateIp": true
}, - "healthCheck": {
- "type": "EC2",
- "autoHealing": true,
- "gracePeriod": 120,
- "unhealthyDuration": 120
}
}
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:managedInstance"
}
}List all Managed Instance resources in the account.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "createdAt": "2020-04-10T21:41:31.000Z",
- "updatedAt": "2020-05-12T22:37:18.000Z",
- "id": "smi-34ae3a42",
- "config": {
- "name": "mi-test",
- "region": "us-east-1",
- "strategy": {
- "lifeCycle": "spot",
- "orientation": "availabilityOriented",
- "drainingTimeout": 0,
- "fallbackToOd": true,
- "utilizeReservedInstances": true,
- "optimizationWindows": [
- "Mon:03:00-Wed:02:30"
], - "revertToSpot": {
- "performAt": "timeWindow"
}
}, - "persistence": {
- "blockDevicesMode": "reattach",
- "persistRootDevice": true,
- "persistBlockDevices": true,
- "persistPrivateIp": true
}, - "healthCheck": {
- "type": "EC2",
- "autoHealing": true,
- "gracePeriod": 120,
- "unhealthyDuration": 120
}, - "compute": {
- "subnetIds": [
- "subnet-79da021e"
], - "vpcId": "vpc-111",
- "elasticIp": "ip",
- "privateIp": "ip",
- "product": "Linux/UNIX",
- "launchSpecification": {
- "instanceTypes": {
- "preferredType": "t2.micro",
- "types": [
- "t2.micro"
]
}, - "ebsOptimized": false,
- "monitoring": false,
- "tenancy": "default",
- "iamRole": {
- "name": "name",
- "arn": "arn"
}, - "securityGroupIds": [
- "sg-0dfc2c8760df6fec7"
], - "imageId": "ami-01e24be29428c15b2",
- "keyPair": "labs-oregon",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "test1@spot.io"
}
], - "resourceTagSpecification": {
- "volumes": {
- "shouldTag": false
}, - "snapshots": {
- "shouldTag": true
}, - "enis": {
- "shouldTag": false
}, - "amis": {
- "shouldTag": true
}
}, - "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "shutdownScript": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "creditSpecification": {
- "cpuCredits": "unlimited"
}, - "networkInterfaces": [
- {
- "deviceIndex": 0,
- "associatePublicIpAddress": true,
- "associateIpv6Address": true
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvdcz",
- "ebs": {
- "iops": null,
- "throughput": null,
- "deleteOnTermination": null,
- "volumeSize": null,
- "volumeType": null
}
}
]
}
}, - "integrations": {
- "loadBalancersConfig": {
- "loadBalancers": [
- {
- "name": "name",
- "arn": "arn",
- "type": "MULTAI_TARGET_SET",
- "balancerId": "lb-1ee2e3q",
- "targetSetId": "ts-3eq",
- "azAwareness": true,
- "autoWeight": true
}
]
}, - "route53": {
- "domains": [
- {
- "hostedZoneId": "Z00275642KS5ZZJFIQBCA",
- "recordSetType": "a",
- "spotinstAccountId": "act-1234",
- "recordSets": [
- null
]
}
]
}
}, - "scheduling": {
- "tasks": [
- {
- "taskType": "scale",
- "startTime": "2018-05-23T10:55:09.000Z",
- "cronExpression": "0 1 * * *",
- "isEnabled": true,
- "frequency": "hourly"
}
]
}
}
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:managedInstance"
}
}| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| MI_ID required | string Example: MI_ID=smi-111 Managed Instance ID you want to get |
object |
{- "managedInstance": {
- "name": "mi-test",
- "description": "This is my Managed Instance",
- "region": "us-east-1",
- "strategy": {
- "lifeCycle": "spot",
- "orientation": "availabilityOriented",
- "drainingTimeout": 0,
- "fallbackToOd": true,
- "utilizeReservedInstances": true,
- "optimizationWindows": [
- "Mon:03:00-Wed:02:30"
], - "revertToSpot": {
- "performAt": "timeWindow"
}
}, - "compute": {
- "subnetIds": [
- "subnet-79da021e"
], - "vpcId": "vpc-111",
- "elasticIp": "ip",
- "privateIp": "ip",
- "product": "Linux/UNIX",
- "launchSpecification": {
- "instanceTypes": {
- "preferredType": "t2.micro",
- "types": [
- "t2.micro"
]
}, - "ebsOptimized": false,
- "monitoring": false,
- "tenancy": "default",
- "iamRole": {
- "name": "name",
- "arn": "arn"
}, - "securityGroupIds": [
- "sg-0dfc2c8760df6fec7"
], - "imageId": "ami-01e24be29428c15b2",
- "keyPair": "labs-oregon",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "test1@spot.io"
}
], - "resourceTagSpecification": {
- "volumes": {
- "shouldTag": false
}, - "snapshots": {
- "shouldTag": true
}, - "enis": {
- "shouldTag": false
}, - "amis": {
- "shouldTag": true
}
}, - "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "shutdownScript": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "creditSpecification": {
- "cpuCredits": "unlimited"
}, - "networkInterfaces": [
- {
- "deviceIndex": 0,
- "associatePublicIpAddress": true,
- "associateIpv6Address": true
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvdcz",
- "ebs": {
- "iops": 0,
- "throughput": 125,
- "deleteOnTermination": true,
- "volumeSize": 12,
- "volumeType": "gp2"
}
}
]
}
}, - "integrations": {
- "loadBalancersConfig": {
- "loadBalancers": [
- {
- "name": "name",
- "arn": "arn",
- "type": "MULTAI_TARGET_SET",
- "balancerId": "lb-1ee2e3q",
- "targetSetId": "ts-3eq",
- "azAwareness": true,
- "autoWeight": true
}
]
}, - "route53": {
- "domains": [
- {
- "hostedZoneId": "Z00275642KS5ZZJFIQBCA",
- "recordSetType": "a",
- "spotinstAccountId": "act-1234",
- "recordSets": [
- {
- "usePublicIp": true,
- "name": "testa.spot.io"
}
]
}
]
}
}, - "scheduling": {
- "tasks": [
- {
- "taskType": "scale",
- "startTime": "2018-05-23T10:55:09.000Z",
- "cronExpression": "0 1 * * *",
- "isEnabled": true,
- "frequency": "hourly"
}
]
}, - "persistence": {
- "blockDevicesMode": "reattach",
- "persistRootDevice": true,
- "persistBlockDevices": true,
- "persistPrivateIp": true
}, - "healthCheck": {
- "type": "EC2",
- "autoHealing": true,
- "gracePeriod": 120,
- "unhealthyDuration": 120
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "managedInstance": {
- "name": "mi-test",
- "description": "This is my Managed Instance",
- "region": "us-east-1",
- "strategy": {
- "lifeCycle": "spot",
- "orientation": "availabilityOriented",
- "drainingTimeout": 0,
- "fallbackToOd": true,
- "utilizeReservedInstances": true,
- "optimizationWindows": [
- "Mon:03:00-Wed:02:30"
], - "revertToSpot": {
- "performAt": "timeWindow"
}
}, - "compute": {
- "subnetIds": [
- "subnet-79da021e"
], - "vpcId": "vpc-111",
- "elasticIp": "ip",
- "privateIp": "ip",
- "product": "Linux/UNIX",
- "launchSpecification": {
- "instanceTypes": {
- "preferredType": "t2.micro",
- "types": [
- "t2.micro"
]
}, - "ebsOptimized": false,
- "monitoring": false,
- "tenancy": "default",
- "iamRole": {
- "name": "name",
- "arn": "arn"
}, - "securityGroupIds": [
- "sg-0dfc2c8760df6fec7"
], - "imageId": "ami-01e24be29428c15b2",
- "keyPair": "labs-oregon",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "test1@spot.io"
}
], - "resourceTagSpecification": {
- "volumes": {
- "shouldTag": false
}, - "snapshots": {
- "shouldTag": true
}, - "enis": {
- "shouldTag": false
}, - "amis": {
- "shouldTag": true
}
}, - "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "shutdownScript": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "creditSpecification": {
- "cpuCredits": "unlimited"
}, - "networkInterfaces": [
- {
- "deviceIndex": 0,
- "associatePublicIpAddress": true,
- "associateIpv6Address": true
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvdcz",
- "ebs": {
- "iops": null,
- "throughput": null,
- "deleteOnTermination": null,
- "volumeSize": null,
- "volumeType": null
}
}
]
}
}, - "integrations": {
- "loadBalancersConfig": {
- "loadBalancers": [
- {
- "name": "name",
- "arn": "arn",
- "type": "MULTAI_TARGET_SET",
- "balancerId": "lb-1ee2e3q",
- "targetSetId": "ts-3eq",
- "azAwareness": true,
- "autoWeight": true
}
]
}, - "route53": {
- "domains": [
- {
- "hostedZoneId": "Z00275642KS5ZZJFIQBCA",
- "recordSetType": "a",
- "spotinstAccountId": "act-1234",
- "recordSets": [
- null
]
}
]
}
}, - "scheduling": {
- "tasks": [
- {
- "taskType": "scale",
- "startTime": "2018-05-23T10:55:09.000Z",
- "cronExpression": "0 1 * * *",
- "isEnabled": true,
- "frequency": "hourly"
}
]
}, - "persistence": {
- "blockDevicesMode": "reattach",
- "persistRootDevice": true,
- "persistBlockDevices": true,
- "persistPrivateIp": true
}, - "healthCheck": {
- "type": "EC2",
- "autoHealing": true,
- "gracePeriod": 120,
- "unhealthyDuration": 120
}
}
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:managedInstance"
}
}Get specific Managed Instance config.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| MI_ID required | string Example: MI_ID=smi-111 Managed Instance ID you want to get |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "managedInstance": {
- "name": "mi-test",
- "description": "This is my Managed Instance",
- "region": "us-east-1",
- "strategy": {
- "lifeCycle": "spot",
- "orientation": "availabilityOriented",
- "drainingTimeout": 0,
- "fallbackToOd": true,
- "utilizeReservedInstances": true,
- "optimizationWindows": [
- "Mon:03:00-Wed:02:30"
], - "revertToSpot": {
- "performAt": "timeWindow"
}
}, - "compute": {
- "subnetIds": [
- "subnet-79da021e"
], - "vpcId": "vpc-111",
- "elasticIp": "ip",
- "privateIp": "ip",
- "product": "Linux/UNIX",
- "launchSpecification": {
- "instanceTypes": {
- "preferredType": "t2.micro",
- "types": [
- "t2.micro"
]
}, - "ebsOptimized": false,
- "monitoring": false,
- "tenancy": "default",
- "iamRole": {
- "name": "name",
- "arn": "arn"
}, - "securityGroupIds": [
- "sg-0dfc2c8760df6fec7"
], - "imageId": "ami-01e24be29428c15b2",
- "keyPair": "labs-oregon",
- "tags": [
- {
- "tagKey": "Creator",
- "tagValue": "test1@spot.io"
}
], - "resourceTagSpecification": {
- "volumes": {
- "shouldTag": false
}, - "snapshots": {
- "shouldTag": true
}, - "enis": {
- "shouldTag": false
}, - "amis": {
- "shouldTag": true
}
}, - "userData": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "shutdownScript": "dXNlcmJhc2g2NGVuY29kZWQ=",
- "creditSpecification": {
- "cpuCredits": "unlimited"
}, - "networkInterfaces": [
- {
- "deviceIndex": 0,
- "associatePublicIpAddress": true,
- "associateIpv6Address": true
}
], - "blockDeviceMappings": [
- {
- "deviceName": "/dev/xvdcz",
- "ebs": {
- "iops": null,
- "throughput": null,
- "deleteOnTermination": null,
- "volumeSize": null,
- "volumeType": null
}
}
]
}
}, - "integrations": {
- "loadBalancersConfig": {
- "loadBalancers": [
- {
- "name": "name",
- "arn": "arn",
- "type": "MULTAI_TARGET_SET",
- "balancerId": "lb-1ee2e3q",
- "targetSetId": "ts-3eq",
- "azAwareness": true,
- "autoWeight": true
}
]
}, - "route53": {
- "domains": [
- {
- "hostedZoneId": "Z00275642KS5ZZJFIQBCA",
- "recordSetType": "a",
- "spotinstAccountId": "act-1234",
- "recordSets": [
- null
]
}
]
}
}, - "scheduling": {
- "tasks": [
- {
- "taskType": "scale",
- "startTime": "2018-05-23T10:55:09.000Z",
- "cronExpression": "0 1 * * *",
- "isEnabled": true,
- "frequency": "hourly"
}
]
}, - "persistence": {
- "blockDevicesMode": "reattach",
- "persistRootDevice": true,
- "persistBlockDevices": true,
- "persistPrivateIp": true
}, - "healthCheck": {
- "type": "EC2",
- "autoHealing": true,
- "gracePeriod": 120,
- "unhealthyDuration": 120
}
}
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:managedInstance"
}
}Get specific Managed Instance config.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| MI_ID required | string Example: MI_ID=smi-111 Managed Instance ID you want to get |
object | |
object |
{- "deallocationConfig": {
- "shouldDeleteImages": true,
- "shouldDeleteNetworkInterfaces": true,
- "shouldDeleteVolumes": true,
- "shouldDeleteSnapshots": true,
- "shouldTerminateInstance": true
}, - "amiBackup": {
- "shouldDeleteImages": true
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Pause an existing Managed Instance.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| MI_ID required | string Example: MI_ID=smi-111 Managed Instance ID you want to get |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Resume an existing Managed Instance.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| MI_ID required | string Example: MI_ID=smi-111 Managed Instance ID you want to get |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Recycle an existing Managed Instance.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| MI_ID required | string Example: MI_ID=smi-111 Managed Instance ID you want to get |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Get financial information on a specific managed instance. To use this API, managedInstanceId must be defined.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| aggregationPeriod | string Data values following either a date format (YYYY-MM-DDTHH:mm:ss.SSSZ ; 2016-01-10T00:00:00.000Z) or Unix seconds Timestamp (1494751821) |
| fromDate required | string <date-time> Example: fromDate=2019-05-17 Get items on or after this date (ISO 8601) |
| MI_ID required | string Example: MI_ID=smi-111 Managed Instance ID you want to get |
| toDate required | string <date-time> Example: toDate=2019-05-25 Get items on or before this date (ISO 8601) |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "running": {
- "value": 4,
- "unit": "hours"
}, - "savings": {
- "value": 0,
- "unit": "percentage"
}, - "costs": {
- "actual": 0.268,
- "potential": 0.268
}
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:managedInstance:costs"
}
}Describes the current status of a specific Managed Instance – entailing information regarding running instance and its status.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| MI_ID required | string Example: MI_ID=smi-111 Managed Instance ID you want to get |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "smi-50739ad2",
- "name": "i-0db00q51ec9069ebf",
- "status": "ACTIVE",
- "instanceId": "i-0vc9530daq19c4aad",
- "instanceType": "t2.micro",
- "imageId": "ami-03238ecdbdc7d6d6a",
- "privateIp": "172.31.10.21",
- "publicIp": "34.212.65.224",
- "createdAt": "2020-05-05T08:53:12.000Z",
- "launchedAt": "2020-05-05T08:53:12.000Z"
}
], - "count": 1,
- "kind": "spotinst:aws:ec2:managedInstanceStatus"
}
}| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object (Migration) Migration Configuration |
{- "migration": {
- "shouldKeepPrivateIp": false,
- "originalInstanceId": "i-123",
- "region": "us-east-1",
- "shouldTerminateInstance": false,
- "managedInstanceName": "us-east-1",
- "product": "Linux/UNIX",
- "spotInstanceTypes": [
- "m3.large"
], - "availabilityZones": [
- {
- "name": "us-west-2c",
- "subnetIds": [
- "subnet-fdfb00a0"
]
}
]
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "migrationId": "smg-123",
- "managedInstanceId": "smi-123",
- "data": {
- "originalInstanceId": "i-123",
- "shouldKeepPrivateIp": true
}, - "state": "MIGRATE_START"
}
], - "count": 1,
- "kind": "potinst:aws:ec2:managedInstance:migration"
}
}| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| MI_ID required | string Example: MI_ID=smi-111 Managed Instance ID you want to get |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "migrationId": "smg-123",
- "managedInstanceId": "smi-123",
- "state": "MIGRATE_START",
- "instanceId": "i-123"
}
], - "count": 1,
- "kind": "potinst:aws:ec2:managedInstance:migration"
}
}Gets audit events that have response status of 200. This is the default when the responseStatus parameter is not included in the query. When you use responseStatus in the query, you can get all audit events without regard to status.
The API requires one of the following permissions to be defined in Spot:
| accountId | any Example: accountId=act-123abc ID of the account associated with your token |
| fromDate required | unix <string> Example: fromDate=1598918400000 Get items on or after this date (Unix timestamp) |
| responseStatus | any Example: responseStatus=all Determines whether the audit events should be filtered by their response status code or not. Valid values: "success": Gets only events with status 200. "all": Audit events will not be filtered by response status codes, and all the events will be returned. Default: success |
| toDate required | unix <string> Example: toDate=1598918400000 Get items on or before this date (Unix timestamp) |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "user": "test@spot.io",
- "namespace": "GENERAL",
- "actionType": "Sign in with SSO",
- "resourceType": "User",
- "resourceId": 21126,
- "createdAt": "2020-06-01T12:17:51.000Z",
- "context": "{\"body\":{\"email\":\"test@spot.io\",\"isMarketplaceCustomer\":false},\"url\":\"/signIn/sso\",\"query\":{}}",
- "source": "UI",
- "agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.9.1667.012 Safari/537.36",
- "responseStatus": 200
}
], - "count": 1,
- "kind": "spotinst:audit"
}
}Create an HCS for Spot Elastigroup.
| ACCOUNT_ID | any Example: ACCOUNT_ID=act-123abc ID of the account associated with your token |
required | object Group |
{- "healthCheck": {
- "resourceId": 21126,
- "name": "Service-1-healthCheck",
- "proxyAddress": "51.22.125.47",
- "proxyPort": 80,
- "check": {
- "protocol": "http",
- "port": 80,
- "endpoint": "index.html",
- "unhealthyThreshold": 2,
- "healthyThreshold": 2,
- "interval": 30,
- "timeout": 60
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": 1,
- "resourceId": "sig-12345",
- "name": "Service-1-healthCheck",
- "proxyAddress": "51.22.125.47",
- "proxyPort": 80,
- "check": {
- "protocol": "http",
- "port": 80,
- "endpoint": "index.html",
- "unhealthyThreshold": 2,
- "healthyThreshold": 2,
- "interval": 30,
- "timeout": 60
}
}
], - "count": 1,
- "kind": "spotinst:healthCheck"
}
}Get a list of all HCS services.
| accountId | any Example: accountId=act-123abc ID of the account associated with your token |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": 1,
- "resourceId": "sig-12345",
- "name": "Service-1-healthCheck",
- "proxyAddress": "51.22.125.47",
- "proxyPort": 80,
- "check": {
- "protocol": "http",
- "port": 80,
- "endpoint": "index.html",
- "unhealthyThreshold": 2,
- "healthyThreshold": 2,
- "interval": 30,
- "timeout": 60
}
}
], - "count": 1,
- "kind": "spotinst:healthCheck"
}
}Update existing HCS.
| ACCOUNT_ID | any Example: ACCOUNT_ID=act-123abc ID of the account associated with your token |
| HEALTHCHECK_ID required | any Example: HEALTHCHECK_ID=hcs-123 The HCS you want to update |
required | object Group |
{- "healthCheck": {
- "check": {
- "unhealthyThreshold": 2,
- "healthyThreshold": 2,
- "interval": 30
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}List the information of a particular HCS
| ACCOUNT_ID | any Example: ACCOUNT_ID=act-123abc ID of the account associated with your token |
| HEALTHCHECK_ID required | any Example: HEALTHCHECK_ID=hcs-123 The HCS you want to update |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": 1,
- "resourceId": "sig-12345",
- "name": "Service-1-healthCheck",
- "proxyAddress": "51.22.125.47",
- "proxyPort": 80,
- "check": {
- "protocol": "http",
- "port": 80,
- "endpoint": "index.html",
- "unhealthyThreshold": 2,
- "healthyThreshold": 2,
- "interval": 30,
- "timeout": 60
}
}
], - "count": 1,
- "kind": "spotinst:healthCheck"
}
}Delete existing HCS
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| HEALTHCHECK_ID required | any Example: HEALTHCHECK_ID=hcs-123 The HCS you want to update |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}A Spot Notifications service enables you a fast, flexible, fully managed push notification service that lets you know about major events that happened in your Spot account.ֿ Spot Notifications makes it simple and cost-effective to get push notifications to your email address, HTTP, HTTPS or AWS SNS (Simple Notifications Service).
Update the account notification policy
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object |
{- "accountPolicy": {
- "emailPolicy": {
- "statements": [
- {
- "category": "Elastigroup Errors",
- "subCategory": "Launch instances failures",
- "isEnabled": true,
- "applyOnFutureResources": true,
- "allowedResources": [
- {
- "id": "sig-1234"
}
], - "deniedResources": [
- {
- "id": "sig-9999"
}
]
}
]
}, - "slackPolicy": {
- "statements": [
- {
- "category": "Elastigroup Errors",
- "subCategory": "Launch instances failures",
- "isEnabled": true,
- "applyOnFutureResources": true,
- "allowedResources": [
- {
- "id": "sig-1234"
}
], - "deniedResources": [
- {
- "id": "sig-9999"
}
]
}
]
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Get the account notification policy
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "accountPolicy": {
- "emailPolicy": {
- "statements": [
- {
- "category": "Elastigroup Errors",
- "subCategory": "Launch instances failures",
- "isEnabled": true,
- "applyOnFutureResources": true,
- "allowedResources": [
- {
- "id": null
}
], - "deniedResources": [
- {
- "id": null
}
]
}
]
}, - "slackPolicy": {
- "statements": [
- {
- "category": "Elastigroup Errors",
- "subCategory": "Launch instances failures",
- "isEnabled": true,
- "applyOnFutureResources": true,
- "allowedResources": [
- {
- "id": null
}
], - "deniedResources": [
- {
- "id": null
}
]
}
]
}
}
}
], - "count": 1,
- "kind": "string"
}
}Create a notification for your resources
| ACCOUNT_ID | any Example: ACCOUNT_ID=act-123abc ID of the account associated with your token |
required | object Group |
{- "subscription": {
- "resourceId": "YOUR_ELASTIGROUP_ID || YOUR_OCEAN_ID || YOUR_MANAGED_INSTANCE_ID",
- "protocol": "aws-sns || email || email-json || web ",
- "endpoint": "YOUR@EMAIL.COM || https://YOUR_ENDPOINT.COM || SNS_TOPIC_ARN",
- "eventType": "AWS_EC2_INSTANCE_TERMINATE || AZURE_VM_TERMINATE",
- "eventFormat": {
- "event": "%event%",
- "resourceId": "%resource-id%",
- "resourceName": "%resource-name%",
- "myCustomKey": "My content is set here"
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sis-123456",
- "resourceId": "sig-5cf38a24",
- "protocol": "http",
- "eventType": "AWS_EC2_INSTANCE_TERMINIATED",
- "updatedAt": "2015-08-04T12:31:26.000Z",
- "createdAt": "2015-08-04T12:31:26.000Z"
}
], - "count": 1,
- "kind": "spotinst:subscription"
}
}List all subscriptions and their information
| ACCOUNT_ID | any Example: ACCOUNT_ID=act-123abc ID of the account associated with your token |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sis-123456",
- "resourceId": "sig-5cf38a24",
- "protocol": "http",
- "eventType": "AWS_EC2_INSTANCE_TERMINIATED",
- "updatedAt": "2015-08-04T12:31:26.000Z",
- "createdAt": "2015-08-04T12:31:26.000Z"
}
], - "count": 1,
- "kind": "spotinst:subscription"
}
}Delete an existing page
| SUBSCRIPTION_ID required | any Example: hcs-123 The subscription you want to update |
| accountId | any Example: accountId=act-123abc ID of the account associated with your token |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}Get a specific notification and its information
| SUBSCRIPTION_ID required | any Example: hcs-123 The subscription you want to update |
| accountId | any Example: accountId=act-123abc ID of the account associated with your token |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "string",
- "method": "string",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "sis-123456",
- "resourceId": "sig-5cf38a24",
- "protocol": "http",
- "eventType": "AWS_EC2_INSTANCE_TERMINIATED",
- "updatedAt": "2015-08-04T12:31:26.000Z",
- "createdAt": "2015-08-04T12:31:26.000Z"
}
], - "count": 1,
- "kind": "spotinst:subscription"
}
}Update existing notification
| SUBSCRIPTION_ID required | any Example: hcs-123 The subscription you want to update |
| accountId | any Example: accountId=act-123abc ID of the account associated with your token |
required | object Element that store all the subscription config |
{- "subscription": {
- "endpoint": "SNS_TOPIC_ARN"
}
}{- "request": {
- "id": "46642c7d-bc29-417d-8ce4-79626f00c63c",
- "url": "/events/subscription/sis-56879d5c?accountId=act-123abc",
- "method": "PUT",
- "timestamp": "2018-11-19T13:49:11.911Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "affectedRows": 1
}
}Describe Potential Savings for AWS resources like - ASG (Auto-scaling groups), Beanstalk, ELB, ECS, EMR and tagged instances. The response will provide Potential monthly savings in USD
| accountId | string Example: accountId=act-123456789 ID of the account associated with your token |
{- "request": {
- "url": "/aws/ec2/group/sig-12345/suspension",
- "method": "GET"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:cs:aws:potentialSavings",
- "items": [
- [
- {
- "resourceType": "Auto Scaling Group",
- "name": "Prod_ASG",
- "region": "us-west-1",
- "instances": 5,
- "instanceTypes": [
- "c4.4xlarge"
], - "potentialSavings": 2700
}
]
], - "count": 1
}
}Describe potential savings for the listed instances. You can provide multiple instance IDs separated by a comma. The response will provide potential monthly savings in USD.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| instanceIds required | string Example: instanceIds=i-1234567 The instance ID |
| region required | string Example: region=us-east-1 The AWS Region |
{- "request": {
- "id": "ff3e1e5b-91b8-42fa-8267-b988efc7f662",
- "url": "/aws/instancePotentialSavings?instanceIds=i-08674ba9a6ddb73f4%2Ci-0973dc7a755d34894®ion=us-west-2",
- "method": "GET",
- "timestamp": "2015-06-29T13:01:55.060Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:cs:aws:potentialSavings",
- "items": [
- {
- "newSpotRequests": [
- {
- "resourceType": "EC2Instance",
- "name": "i-12345abcde12345",
- "instances": 1,
- "instanceTypes": [
- "t2.medium"
], - "potentialSavings": 28
}, - {
- "resourceType": "EC2Instance",
- "name": "i-0973dc7a755d34894",
- "instances": 1,
- "instanceTypes": [
- "m4.large"
], - "potentialSavings": 60
}
]
}
], - "count": 2
}
}Retrieve costs per specified account over a specified time period. Example of URL with with daily aggregation period over a time period of 30 days - https://api.spotinst.io/aws/ec2/account/costs?fromDate=1585699200000&toDate=1588291199000&aggregationPeriod=daily
| accountId | string Example: accountId=act-123456789 ID of the account associated with your token |
| aggregationPeriod | string Example: aggregationPeriod=daily Optional. The time period over which data is aggregated. Can only be "daily". For example, the figures in each data set are per day |
| fromDate | string Example: fromDate=2018-06-20 Date can be either in ISO-8601 date format (yyyy-mm-dd) or in Unix Timestamp format (e.g. 1494751821472). |
| toDate | string Example: toDate=2018-11-20 Date can be either in ISO-8601 date format (yyyy-mm-dd) or in Unix Timestamp format (e.g. 1494751821472). |
{- "request": {
- "id": "67582d0c-108b-4ef7-9fdc-d39678a30844",
- "url": "/aws/ec2/group",
- "method": "GET",
- "timestamp": "2018-01-07T07:30:58.622Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:group",
- "items": [
- [
- {
- "timestamp": "2020-03-06T00:00:00.000Z",
- "spot": {
- "runningHours": 1470.8,
- "actualCosts": 107.3,
- "potentialCosts": 378.41,
- "savingsPercentage": 71.64
}
}
]
], - "count": 1
}
}Get suggested instance types by required resources. Note that request must include region, and at least one of the following values - baselineInstanceType, requiredVCpu, requiredMemoryGib
| accountId | string Example: accountId=act-123abc ID of the account associated with your token |
object (AWS Elastigroup) |
{- "requirements": {
- "region": "us-east-1",
- "baselineInstanceType": "m5.large",
- "requiredVCpu": {
- "minimum": 2,
- "maximum": 4
}, - "requiredMemoryGib": {
- "minimum": 16,
- "maximum": 64
}
}
}{- "request": {
- "id": "0bb5db74-2457-4a34-b8f3-174e6bf5578e",
- "url": "/aws/ec2/instanceTypeRecommendation",
- "method": "POST",
- "timestamp": "2016-06-19T08:41:57.516Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "kind": "spotinst:aws:ec2:instanceTypeRecommendation",
- "items": [
- [
- {
- "instanceType": "m4.large"
}, - {
- "instanceType": "m5.large"
}
]
], - "count": 1
}
}Get a summary of your instances costs by given time filter.
The request will result in CSV format on your instances from all given accounts.
Notice that the date range can be up to 180 days.
Response fields are detailed in the response
| accountIds | Array of strings |
| fromDate | string |
| toDate | string |
{- "accountIds": [
- "act-abc12345"
], - "fromDate": 1569950296,
- "toDate": 1570727896
}id,accountId,accountName,resourceId,cloudProvider,instanceId,instanceType,region,useCase,lifeCycle,product,launchTime,terminationTime,runningHours,odHourlyPrice,odCost,actualCost,savings,reservationId 2439,act-abc12345,Demo,oesg-cc4740e1,AWS,i-00d67d5efc69e938d,r4.large,us-west-2,K8S,EXCESS,LINUX,2019-10-05T02:59:40.000Z,2019-10-05T03:15:12.000Z,1,0.133,0.133,0.0337,0.0993, 2576,act-abc12345,Demo,oesg-5feb10ab,AWS,i-01086811aefdc4959,c4.large,us-west-2,K8S,EXCESS,LINUX,2019-10-06T10:13:03.000Z,2019-10-06T19:07:05.000Z,9,0.1,0.9,0.279,0.621, 1760,act-abc12345,Demo,oesg-cc4740e1,AWS,i-01797b0ac578198fa,c3.large,us-west-2,K8S,EXCESS,LINUX,2019-08-27T06:41:14.000Z,2019-10-05T02:57:30.000Z,23.9997,0.105,2.52,0.7008,1.8192, 1761,act-abc12345,Demo,oesg-cc4740e1,AWS,i-02e460584769b3c28,r4.large,us-west-2,K8S,EXCESS,LINUX,2019-08-20T22:23:54.000Z,,23.9997,0.133,3.192,0.8088,2.3832,
Create a new data integration, an object representing a connection to a third-party vendor to export to and import data from.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object |
{- "dataIntegration": {
- "vendor": "s3",
- "name": "my-s3-integration",
- "config": {
- "bucketName": "mybucket",
- "subdir": "dev"
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/insights/dataIntegration",
- "method": "POST",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "di-123",
- "vendor": "s3",
- "name": "my-s3-integration",
- "status": "enabled",
- "health": "valid",
- "code": 200,
- "message": "ok",
- "lastHealthCheck": "2021-08-1T10:00:00.000Z",
- "config": {
- "bucketName": "mybucket",
- "subdir": "dev"
}
}
], - "count": 1,
- "kind": "spotinst:dataIntegration"
}
}List data integrations.
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
| health | string Enum: "valid" "invalid" "forbidden" Example: health=valid The health status of the data integrations to list. |
| name | string Example: name=my-data-integration The name of the data integrations to list. |
| status | string Enum: "enabled" "disabled" Example: status=enabled The status of the data integrations to list. |
| vendor | string Value: "s3" Example: vendor=s3 The vendor of the data integrations to list. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/insights/dataIntegration",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "di-123",
- "vendor": "s3",
- "name": "my-s3-integration",
- "status": "enabled",
- "health": "valid",
- "code": 200,
- "message": "ok",
- "lastHealthCheck": "2021-08-1T10:00:00.000Z",
- "config": {
- "bucketName": "mybucket",
- "subdir": "dev"
}
}
], - "count": 1,
- "kind": "spotinst:dataIntegration"
}
}Update an existing data integration.
| dataIntegrationId required | string Example: di-123abc Identifier of the data integration. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
object |
{- "dataIntegration": {
- "vendor": "s3",
- "name": "my-s3-integration",
- "status": "enabled",
- "config": {
- "bucketName": "mybucket",
- "subdir": "dev"
}
}
}{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/insights/dataIntegration/di-123",
- "method": "PUT",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "di-123",
- "vendor": "s3",
- "name": "my-s3-integration",
- "status": "enabled",
- "health": "valid",
- "code": 200,
- "message": "ok",
- "lastHealthCheck": "2021-08-1T10:00:00.000Z",
- "config": {
- "bucketName": "mybucket",
- "subdir": "dev"
}
}
], - "count": 1,
- "kind": "spotinst:dataIntegration"
}
}Get an existing data integration.
| dataIntegrationId required | string Example: di-123abc Identifier of the data integration. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/insights/dataIntegration/di-123",
- "method": "GET",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}, - "items": [
- {
- "id": "di-123",
- "vendor": "s3",
- "name": "my-s3-integration",
- "status": "enabled",
- "health": "valid",
- "code": 200,
- "message": "ok",
- "lastHealthCheck": "2021-08-1T10:00:00.000Z",
- "config": {
- "bucketName": "mybucket",
- "subdir": "dev"
}
}
], - "count": 1,
- "kind": "spotinst:dataIntegration"
}
}Delete an existing data integration.
| dataIntegrationId required | string Example: di-123abc Identifier of the data integration. |
| accountId required | string Example: accountId=act-123456789 The ID of the account associated with your token. |
{- "request": {
- "id": "e593ff58-067d-4340-92f9-8b1c0bad70d7",
- "url": "/insights/dataIntegration/di-123",
- "method": "DELETE",
- "timestamp": "2018-06-20T11:35:01.745Z"
}, - "response": {
- "status": {
- "code": 200,
- "message": "OK"
}
}
}